Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/334.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
从用户获取分隔符的Java方法_Java_Separator - Fatal编程技术网

从用户获取分隔符的Java方法

从用户获取分隔符的Java方法,java,separator,Java,Separator,我正在我的程序中编写这个方法,将文本文件解析为XML。用户提供文件的分隔符。文件可以用逗号、冒号、制表符或管道分隔。下面的方法适用于逗号,但不适用于其他3。提前谢谢你的帮助 public static String getSeparator(String separator) { Scanner userInput = new Scanner(System.in); do { System.out.println("Enter the separato

我正在我的程序中编写这个方法,将文本文件解析为XML。用户提供文件的分隔符。文件可以用逗号、冒号、制表符或管道分隔。下面的方法适用于逗号,但不适用于其他3。提前谢谢你的帮助

public static String getSeparator(String separator) {
    Scanner userInput = new Scanner(System.in);

    do {
        System.out.println("Enter the separator type (commas, Colons, Tabs, Pipes)");
        separator = userInput.nextLine();
    } while (!separator.equals(",") || separator.equals(":") || separator.equals("   ") || separator.equals("|"));

    return separator;
}

您需要在整个条件周围使用括号

while (!(separator.equals(",") || separator.equals(":") || separator.equals("   ") || separator.equals("|")));
更好的方法是定义分隔符的字符串数组:

String[] seperators = new String[] {",",":"," ","|"};
然后检查它是否在列表中:

} while (!Arrays.asList(seperators).contains(seperator));

你只使用了一个!(不等于)表示逗号,不表示任何其他分隔符。要么加上!或者使用括号。逻辑NOT(“
”)仅适用于第一个条件。您需要括号。
}while(!separator.matches(“,|::| \\t | \\\\\\”)谢谢,将not运算符添加到所有工作条件中。