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

问题描述

我正在我的程序中编写此方法,该程序将文本文件解析为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数组:

String[] seperators = new String[] {",",":"," ","|"};

然后检查它是否在列表中:

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

相关问答

Selenium Web驱动程序和Java。元素在(x,y)点处不可单击。其...
Python-如何使用点“。” 访问字典成员?
Java 字符串是不可变的。到底是什么意思?
Java中的“ final”关键字如何工作?(我仍然可以修改对象。...
“loop:”在Java代码中。这是什么,为什么要编译?
java.lang.ClassNotFoundException:sun.jdbc.odbc.JdbcOdbc...