如何在java scanner类中包含空格

时间:2016-06-29 00:13:17

标签: java

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"其他一切都正确解析。

1 个答案:

答案 0 :(得分:2)

不是使用scanner.next(),而是使用返回整行的scanner.nextLine(),然后可以用string.split("\\|")或类似的方式拆分行,以获取行中元素的String数组与" |"分开分隔符。