我在文件中有一个输入,其中我有一些格式为
的数字106648 | 403481 747826 | 369456 758122 | 365637 503576 | 808710 325374 | 402513
我不想将数字格式化为 106648 403481 747826 .. 依此类推但我无法做到这一点到目前为止我已经做到了这一点
public class MidPointSum {
public static void main(String[] args) {
File file=new File("D:/midpoint.txt");
try{
Scanner sc=new Scanner(file);
while(sc.hasNext()){
String value=sc.next();
String getVal[]=value.split("|");
for(int i=0;i<getVal.length;i++){
System.out.println(getVal[i]);
}
}
}catch(FileNotFoundException e){
System.err.println("File is not Found");
}catch (Exception e){
System.err.println("Another Exception");
}
}
但我没有得到所需的输出。请有人帮助我..
答案 0 :(得分:2)
Java的split使用正则表达式,因此你需要双重转义管道:
String[] getVal=value.split("\\|");
如果它是普通的正则表达式,你无论如何都需要逃避它,但是在"\"
中\t
是special character in a string,因为\n
和{{1}}这样的字符,因此双重逃脱。
答案 1 :(得分:1)
|
是一个正则表达式元字符,需要进行转义,请尝试"\\|"