Java 检测扫描仪是否没有';我没有下一个
我有以下文件,我将其用作测试: id=1392Java 检测扫描仪是否没有';我没有下一个,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(
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());
}