Java 检测扫描仪是否没有';我没有下一个

Java 检测扫描仪是否没有';我没有下一个,java,file-io,java.util.scanner,Java,File Io,Java.util.scanner,我有以下文件,我将其用作测试: id=1392 name=Nathan 性别=男性 testempty= testempty2= zip=11111 我正在循环行并调用它们上的函数processLine(String-line)来处理字符串: private String processLine(String line) { Scanner scanner = new Scanner(line); StringBuilder result = new StringBuilder(

我有以下文件,我将其用作测试:

id=1392
name=Nathan
性别=男性
testempty=
testempty2=
zip=11111

我正在循环行并调用它们上的函数
processLine(String-line)
来处理
字符串

private String processLine(String line) {
    Scanner scanner = new Scanner(line);
    StringBuilder result = new StringBuilder();
    scanner.useDelimiter("=");

    if (scanner.hasNext()) {
        result.append(scanner.next());
        result.append(" , ");
        result.append(scanner.next());
        result.append(" , ");
    }

    return result.toString();
}
但是,我如何检测是否没有下一个(如在
testempty
)并执行
结果。追加(“空的”)

(我想这就是您所要求的)

换行:

result.append(scanner.next());
致:


改变你的方法。如果结果尚未为空,则在追加值之前追加“”:

if (scanner.hasNext()) {
    if (!result.isEmpty()) {
     result.append(" , ");
    }
    result.append(scanner.next());
    result.append(" , ");
    result.append(scanner.next());
}

如果我是你,我会逐行阅读文件,每行使用
line.split('\\s*=\\s*',2)
来获取令牌。我想你可以使用java.util.Properties来解析文件。@JackEdmonds我正在尝试转换代码,以便现在就可以使用
java.util.Properties
,但是如何获取属性列表并将其转换为
字符串[]
?您可以使用java.util.properties.stringPropertyNames()获取属性的
集。如果您不关心顺序,那么很容易将其转换为数组。@JackEdmonds如果我尝试此
Set Set=prop.stringPropertiesName()Eclipse说:
类型属性的方法stringPropertiesName()未定义
if (scanner.hasNext()) {
    if (!result.isEmpty()) {
     result.append(" , ");
    }
    result.append(scanner.next());
    result.append(" , ");
    result.append(scanner.next());
}