我有一个文本文件如下:
Title
XYZ
Id name
1 abc
2 pqr
3 xyz
我需要读取以整数值开头的内容,并使用正则表达式,如下面的代码所示。
public static void main(String[] args) throws FileNotFoundException {
FileInputStream file= new FileInputStream("C:\\Users\\ap\\Downloads\\sample1.txt");
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if (line.startsWith("[0-9]")) {
System.out.println("Line: "+line);
}
}
}
上面的代码无法检测以整数开头的行。但是,如果将单个整数值传递给startsWith()
函数,则它可以正常工作。
请告诉我,哪里出错了。
答案 0 :(得分:8)
String#startsWith(String)
方法不接受正则表达式。它需要一个字符串文字。
要检查第一个字符是否为数字,您可以使用String#charAt(int index)
方法获取索引0处的字符。然后使用Character#isDigit(char)
方法测试该字符是否为数字:
if (Character.isDigit(line.charAt(0)) {
System.out.println(line);
}
答案 1 :(得分:2)
对于正则表达式,您可以使用“匹配”方法,如下所示:
line.matches("^[0-9].*")