gpt4 book ai didi

Java Scanner - 如何在使用 next() 后返回到最后一个单词

转载 作者:行者123 更新时间:2023-11-29 03:46:42 27 4
gpt4 key购买 nike

我目前有一个 If 语句来检查文档中的下一个单词是否等于特定长度。在它返回 true 之后,我希望它将那个词添加到数组或字符串等中。我的问题是一旦我使用 next() 命令,它就会继续到文档中的下一个值,即使我在如果声明。我是 Java 的新手,所以我希望这个简单的点击是有意义的。

Scanner in1 = new Scanner(inputFile);
String inputString;

while(in1.hasNextLine()){
if(in1.next().length() == 6){
inputString = in1.next();
}
}

基本上我有一个包含多个单词的文件,多行的长度都不同。我想捕捉其中有 6 个字符的单词。实际的 while 循环和文件更复杂,问题是它在计算 If 语句后跳转到下一个单词。因此,如果它检测到下一个单词有 6 个字符,它会将紧随其后的单词加载到变量中。欢迎任何帮助或建议!

最佳答案

你可以把这个循环分成两部分:

  1. 获取下一个 token 并存储它,并且
  2. 使用缓存的 token 。

例如:

while(in1.hasNextLine()) {
String current = in1.next();
if(current.length() == 6) {
inputString = current;
}
}

这是使用迭代器或扫描器时的标准技术,正是出于您所指出的原因 - next() 方法不能在不产生不同值的情况下被多次调用。

顺便说一句,其他编程语言已经设计了它们的迭代器,以便获取被迭代的值和前进到下一个位置是单独的步骤。值得注意的是,C++ STL 将这些视为不同的操作。

希望这对您有所帮助!

关于Java Scanner - 如何在使用 next() 后返回到最后一个单词,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10575456/

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