EDIT ------------- 似乎我的解释并不是那么好,所以这里是我需要做的更好的一个。这是一个示例文件(忽略行之间的空格):
10 = android | 156.94.34.212 |设备1 | 5 | 9
15 = IOS | 134.58.48.343 |数据| 3 | 7
我想解析每一行。我需要存储该行的每个部分,不包括" ="和" |"字符和最后2个数字也无关紧要。所以5,9,3和7我不需要。我的问题是当我遇到设备1.我需要保存该空间和1,但无法弄清楚如何。这将是我需要为第一行显示的内容:
id = 10
device = android
ipAddress = 156.94.34.212
deviceName = device 1
示例代码:
Scanner scan = new Scanner(file);
while(scan.hasNextLine()){
Scanner id = new Scanner(scan.next()).useDelimiter("=");
String deviceID = id.next();
Scanner dataScan = new Scanner(id.next()).useDelimiter("[|]");
String device = dataScan.next();
String address = dataScan.next();
String deviceName = dataScan.next();
scan.nextLine();
}
打印输出中的1"设备1"其他一切都正确解析。
答案 0 :(得分:2)
不是使用scanner.next()
,而是使用返回整行的scanner.nextLine()
,然后可以用string.split("\\|")
或类似的方式拆分行,以获取行中元素的String数组与" |"分开分隔符。