【发布时间】:2016-08-03 04:49:39
【问题描述】:
我正在尝试制作一个简单的程序来读取文本文件并从中获取特定数据。在下面的代码中,我尝试获取我有报价的位置。所以假设 file.txt 的内容是:
aaaaaaa"bbbbb"ccccc
ddd"ee"ffff
g"hhhhhh"iii"gggg"
所以我应该有一个包含所有引号位置的数组列表(al = [7, 13, 3, 6, 1, 8, 12, 17])。 问题是我似乎无法从我从文本中读取的每一行中获取一个子字符串。我想获取引号内的文本。输出应该是这样的:
bbbbb
ee
hhhhhh
gggg
代码:
File temp = new File("file.txt");
Scanner file = new Scanner(temp);
ArrayList<Integer> al = new ArrayList<Integer>();
while (file.hasNext()) {
String k = file.next();
//System.out.println(k);
int position = 0;
while (position >= 0) {
position = k.indexOf('"', position + 1);
//System.out.println(position);
al.add(position);
}
System.out.println(k.substring(position,position+1));
}
【问题讨论】:
-
你的程序得到了什么?有什么问题?
-
如果你想要引号内的字符串,你应该使用正则表达式
-
带有
Pattern和Matcher的正则表达式在您的字符串中有超过2 个引号集的情况下应该很有用。你有什么理由不在这里使用正则表达式?