gpt4 book ai didi

java - 将文本扫描到变量,直到检测到 "\t"

转载 作者:行者123 更新时间:2023-11-30 08:13:57 25 4
gpt4 key购买 nike

我正在尝试编写一个脚本,该脚本逐行读取文本文件并将该行的子字符串分配给各个变量。大部分工作已经完成,但我似乎无法弄清楚看似最简单的部分。

示例文本文件:

12345 Lenovo X1 Carbon 这是一条评论

理想变量:

String tag = "12345";

String Name = "Lenovo X1 Carbon";

String Comment = "This is a comment";

实际变量:

String tag = "12345";

String Name = "Lenovo";

String Comment = "X1 Carbon This is a comment";

我已经完成了所有这些工作,除了能够停止读取应该检测到“\t”的位置。我使用下面的代码尝试读取文本,直到读取选项卡(单变量示例)。

String myName = "";
while(!lineScanner.next().contains("\t"))
myName += lineScanner.next();

我是否遗漏了一些简单的东西?

最佳答案

假设 lineScanner 是对 Scanner 的引用,您可能会忽略 Scanner 的默认分隔符模式与空格匹配,并且制表符和空格字符(以及其他)是空白。 扫描器返回的标记从不包含任何分隔符。

您可以随时通过其 useDelimiter() 方法之一将 Scanner 设置为使用不同的分隔符模式。请注意,如果您稍后reset()扫描仪,则其模式将恢复为默认值。

可能你想要这个:

Pattern originalDelim = lineScanner.delimiter();
Pattern alternateDelim = Pattern.compile("[\t\n]+");

String tag;
String name;
String comment;

tag = lineScanner.next();
lineScanner.useDelimiter(alternateDelim);
name = lineScanner.next();
comment = lineScanner.next();
lineScanner.useDelimiter(originalDelim);

也许您可以一直使用替代分隔符模式而无需切换;这取决于您的输入文件格式的详细信息。

关于java - 将文本扫描到变量,直到检测到 "\t",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29928690/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com