Java 扫描仪和文件的问题
我有一本书。我想从中读取和写入的csv文件。如果有新的输入,它应该检查文件中是否已经存在string1。String1可以包含数字、字符和空格 写入文件根本没有问题,但是当它应该检查string1是否存在时,它只在string1看起来是1或2时才起作用。但是string1将是一个由字符、数字和空格组成的字符串Java 扫描仪和文件的问题,java,java.util.scanner,Java,Java.util.scanner,我有一本书。我想从中读取和写入的csv文件。如果有新的输入,它应该检查文件中是否已经存在string1。String1可以包含数字、字符和空格 写入文件根本没有问题,但是当它应该检查string1是否存在时,它只在string1看起来是1或2时才起作用。但是string1将是一个由字符、数字和空格组成的字符串 Scanner scanner = new Scanner(file); while (scanner.hasNextLine())
Scanner scanner = new Scanner(file);
while (scanner.hasNextLine()) {
String line = scanner.nextLine();
if(line.contains(string1)) {
// Print some error message
}
else{
// write output to .csv file
}
}
scanner.close();
我已尝试更改文件的编码,但也没有帮助 甚至我在扫描仪和csv读取方面也遇到了一些问题,所以我使用BufferedReader代码:-
String inputFileName = "fileName";
BufferedReader br ;
try {
br = new BufferedReader(new FileReader(inputFileName));
String line = br.readLine();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
但扫描仪也适用于csv,扫描仪代码:-
Scanner br;
try {
br = new Scanner(new FileReader(inputFileName));
String line = br.next();
}
catch (FileNotFoundException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
那真的没用。扫描仪本身似乎可以工作,但带有contain的过滤器会对特殊字符产生一些问题。。对于BR也是一样,我在几个小时前尝试过将所有读取值添加到一个集合中,然后迭代该集合并写入一个文件。您将不会有任何重复的值。
“abcde”.contains(“bc”)
起作用,但您可能希望搜索字符串中的任何字符:“abcde”.matches(.*[ae].*)
。当字符串是变量时,如何搜索字符串中的任何字符?line.matches(.[“+string1+”])代码>基本上是这样的,但是一些特殊的正则表达式字符必须按常规处理:-
,]
等等。我不是指任何字符,而是指字符串本身。就像我放1234时,如果是123,它应该允许输入,但不是1234。。