Java 仅将包含整数和字符串的文件拆分为字符串
我有一个文件,它的数据存储为“整数->\t(tab)->字符串->两个空格->” 我做错了吗 我正在做的是Java 仅将包含整数和字符串的文件拆分为字符串,java,string,delimiter,trie,Java,String,Delimiter,Trie,我有一个文件,它的数据存储为“整数->\t(tab)->字符串->两个空格->” 我做错了吗 我正在做的是 Trie t = new Trie(); BufferedReader bReader = new BufferedReader(new FileReader( "H:\\100kfound.txt")); String line; String[] s = null; while ((line = bReader.read
Trie t = new Trie();
BufferedReader bReader = new BufferedReader(new FileReader(
"H:\\100kfound.txt"));
String line;
String[] s = null;
while ((line = bReader.readLine()) != null) {
s = line.split("\t");
}
int i;
for (i = 0; i < s.length; i++) {
System.out.println(s[i]);
if (!(s[i].matches("\\d+"))) {
t.addWord(s[i]);
System.out.println(s[i]);
}
}
Trie t=new Trie();
BufferedReader bReader=新BufferedReader(新文件读取器(
“H:\\100kfound.txt”);
弦线;
字符串[]s=null;
而((line=bReader.readLine())!=null){
s=行分割(“\t”);
}
int i;
对于(i=0;i
我可以通过调试看到,它在while循环中运行正常,但在for循环中,它只存储两个字符串并打印相同的字符串。您可能需要为表达式添加一个^[0-9]+$,这样您就可以得到完整的整数。如果没有“^”和“$”,则可以匹配其他字符,如tt55gh所匹配的字符
if (!(s[i].matches("^[0-9]+$"))) {
}
根据上面的注释,您需要将for循环移动到while循环中
while ((line = bReader.readLine()) != null) {
s = line.split("\t");
for (int i = 0; i < s.length; i++) {
System.out.println("Value "+i+": "+s[i]);
if (!(s[i].matches("^[0-9]+$"))) {
t.addWord(s[i]);
System.out.println("Integer "+i+": "+s[i]);
}
}
}
while((line=bReader.readLine())!=null){
s=行分割(“\t”);
对于(int i=0;i
你知道除了最后一行代码之外,你把所有的行都扔掉了吗?乔,别放心。我有超过10000个字符串的大文件。它会影响它吗。?