Java基于条件的子字符串



我对Java很陌生,我想知道是否有一种基于条件创建子字符串的有效方法。

目前我正在从一个txt文件中读取,并使用BufferedReader将该txt文件更改为字符串格式。

我收到几个文本文件,但他们都有相同的格式。我想提取的数据总是在第45行。文本文件的第45行总是这样的

number : abcd

我想提取"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)赋值给一个变量,并根据需要使用数据

应该可以:

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'开头的空格,将其变为'abcd'。

免责声明:此代码未经过完全测试,因此可能会出现一些错误。

将文件内容作为字符串列表读取

Files.readAllLines(new File(fileName).toPath(), Charset.defaultCharset());

并获得第45个元素,然后除以:并获得第二个数组元素。

最新更新