Java 基于条件的子字符串
Java Substring based on condtion
我是 Java 的新手,我想知道是否有根据条件创建子字符串的有效方法。
目前我正在读取 txt 文件并使用 BufferedReader 将该 txt 文件更改为字符串格式。
我收到了几个 txt 文件,但它们的格式都相同。
我要提取的数据总是在第 45 行。
而 txt 文件的第 45 行总是看起来像这样。
number : abcd
我想提取“abcd”部分。
如果有人能告诉我是否有任何方法可以做到这一点,我们将不胜感激。
读取文件内容作为字符串列表
Files.readAllLines(new File(fileName).toPath(), Charset.defaultCharset());
得到第45个元素,然后用:分割得到第二个数组元素
这应该有效:
String s = stringFromTextFile;
s = s.split(":")[1];
s = s.substring(1, s.length());
System.out.println("Abcd: " + s);
s = s.split(":")[1]
行本质上构成了一个包含 2 个元素的数组。例如,条目 0 将是 'number ',而条目 1 将是“abcd”。
然后,s = s.substring(1, s.length())
去掉'abcd'开头的space,变成'abcd'.
免责声明:此代码未经过全面测试,因此可能会出现一些错误。
读取特定行的文件和正则表达式以获得所需数据:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main{
public static void main(String[] args) {
try{
String line45 = Files.readAllLines(Paths.get("file.txt")).get(44);
String pattern = "\: (.*)"; // Capture everything after ':' colon character
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line45);
if (m.find( )) {
System.out.println("Found value: " + m.group(1) );
}
}catch (IOException e) {
System.out.println("entry not found.");
}
}
}
Found value: abcd
将 m.group(1)
分配给变量并根据需要使用数据。
我是 Java 的新手,我想知道是否有根据条件创建子字符串的有效方法。
目前我正在读取 txt 文件并使用 BufferedReader 将该 txt 文件更改为字符串格式。
我收到了几个 txt 文件,但它们的格式都相同。 我要提取的数据总是在第 45 行。 而 txt 文件的第 45 行总是看起来像这样。
number : abcd
我想提取“abcd”部分。 如果有人能告诉我是否有任何方法可以做到这一点,我们将不胜感激。
读取文件内容作为字符串列表
Files.readAllLines(new File(fileName).toPath(), Charset.defaultCharset());
得到第45个元素,然后用:分割得到第二个数组元素
这应该有效:
String s = stringFromTextFile;
s = s.split(":")[1];
s = s.substring(1, s.length());
System.out.println("Abcd: " + s);
s = s.split(":")[1]
行本质上构成了一个包含 2 个元素的数组。例如,条目 0 将是 'number ',而条目 1 将是“abcd”。
然后,s = s.substring(1, s.length())
去掉'abcd'开头的space,变成'abcd'.
免责声明:此代码未经过全面测试,因此可能会出现一些错误。
读取特定行的文件和正则表达式以获得所需数据:
import java.nio.file.Files;
import java.nio.file.Paths;
import java.io.IOException;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
class Main{
public static void main(String[] args) {
try{
String line45 = Files.readAllLines(Paths.get("file.txt")).get(44);
String pattern = "\: (.*)"; // Capture everything after ':' colon character
Pattern r = Pattern.compile(pattern);
Matcher m = r.matcher(line45);
if (m.find( )) {
System.out.println("Found value: " + m.group(1) );
}
}catch (IOException e) {
System.out.println("entry not found.");
}
}
}
Found value: abcd
将 m.group(1)
分配给变量并根据需要使用数据。