【发布时间】:2016-10-31 11:50:05
【问题描述】:
编辑---------- 似乎我的解释并不是那么好,所以这是我需要做的更好的一个。这是一个示例文件(忽略行之间的空格):
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
设备 = 安卓
ipAddress = 156.94.34.212
设备名称 = 设备 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 去掉,其他所有内容都正确解析。
【问题讨论】:
-
@ochi 不,这两个问题不相关。投票结束“不清楚”或“为什么这段代码不起作用”就足够了,因为没有 OP 代码就无法回答这个问题。
-
@Tom 我正在按照@iciaran 的答案的思路思考-> 阅读这条线,用已知的分隔符分隔(但我没有完全清楚地表达这一点,我的错)
-
@ochi OPs 的问题读起来有点像他目前确实这样做,但这就是为什么这个问题不清楚(至少对我来说),因为他得到的结果很奇怪。
-
@Tom 对我来说,OP 正在使用
.next()从扫描仪读取输入 - 这就是为什么.nextLine()是一个更好的选择恕我直言 -
请显示minimal reproducible example 和edit。我们想看看您如何设置分隔符
标签: java