java - 基于条件的 Java 子字符串
问题描述
我对Java很陌生,我想知道是否有一种有效的方法可以根据条件创建子字符串。
目前我正在读取一个 txt 文件并使用 BufferedReader 将该 txt 文件更改为字符串格式。
我收到了几个 txt 文件,但它们都具有相同的格式。我要提取的数据总是在第 45 行。而 txt 文件的第 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)
给变量并根据需要使用数据。
推荐阅读
- python - Django 命令“django-admin startmyproject”不起作用?
- matrix - CUDA:Matrix + Matrix,在主机中打印解决方案矩阵时出现分段错误
- c - 如何使用 strncat() 在运行时避免 Abort Trap 6 错误?
- c - char 和 int 上的 C 结构位域之间的不同
- ios - 为什么在 for-in 循环中遍历一系列变量会引发条件警告,但单独设置它们不会?
- python-3.x - 使用标头的 Python Amazon 抓取
- c++ - 如何将 std:fixed << setprecision(5) 的结果分配给 C++ 中的变量
- java - 如何获取列表
来自 HashMap > - python - 使用嵌入为 LSTMCell 提供整个句子会产生维度错误
- firebase - 等待屏幕直到文档添加到 Firestore 子集合?