从用户获取分隔符的Java方法
我正在我的程序中编写这个方法,将文本文件解析为XML。用户提供文件的分隔符。文件可以用逗号、冒号、制表符或管道分隔。下面的方法适用于逗号,但不适用于其他3。提前谢谢你的帮助从用户获取分隔符的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
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运算符添加到所有工作条件中。