首先,我是Java新手。
我正在尝试在用户指定的txt文件上使用Split()函数。 它应该使用空格分割文件以输出字符串数组。 我正在使用JFileChooser,但我不知道如何在选定的txt文件上执行拆分。我正在使用扫描仪来执行此操作。
如果有人可以完成代码,请出于某种原因我无法理解: - /
到目前为止我已经做到了:
JFileChooser chooser = new JFileChooser("C:\\");
chooser.setFileSelectionMode(JFileChooser.FILES_ONLY);
FileNameExtensionFilter filter = new FileNameExtensionFilter(
".txt and .java files", "txt", "java");
chooser.setFileFilter(filter);
int code = chooser.showOpenDialog(null);
if (code == JFileChooser.APPROVE_OPTION) {
File selectedFile = chooser.getSelectedFile();
Scanner input;
try {
input = new Scanner(selectedFile);
while (input.hasNext()) {
String[] splits = input.next().split(" ");
}
} catch (FileNotFoundException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
答案 0 :(得分:2)
如果需要按空格字符拆分输入,则包含带空格而不是空字符串的字符串。替换
String[] splits = f.split("");
与
String[] splits = f.split(" "); // One space
正如其他人所指出的,f
未在您的区块中声明。您必须将其声明为String
并使用Scanner
将输入读入f
,然后使用split
。
答案 1 :(得分:0)
f.split("");
或
f.split("[\\s]+");
使用制表符和双倍空格是安全的。
答案 2 :(得分:0)
什么是f
?它没有在任何地方声明,除了在之前使用之后的异常,这没有任何意义。
你的while循环应该写成:
while (input.hasNextLine()) {
String line = input.nextLine();
String[] splits = line.split(" ");
// put the result of split somewhere
}
答案 3 :(得分:0)
while (input.hasNext()) {
String[] splits = f.split("");
input.next();
}
System.out.println(f);
首先,永远不会使用splits
。其次,input.next()
永远不会存储在变量中。另外,我不知道f
是什么。尝试这样的事情:
while (input.hasNext()) {
String[] splits = input.next().split(" ");
someList.add(splits);
}
您可以将someList
声明为new ArrayList<String[]>()
。