gpt4 book ai didi

java - 扫描仪返回未找到行

转载 作者:行者123 更新时间:2023-12-02 05:00:05 25 4
gpt4 key购买 nike

当我运行此命令时,出现“未找到行”异常。这是我的项目中唯一给我带来这个错误的方法。其他所有方法都使用相同的代码和参数,但都没有遇到此错误。

有问题的方法是findLargestPalindrome()

异常:

 Exception in thread "main" java.util.NoSuchElementException: No line found
at java.util.Scanner.nextLine(Scanner.java:1540)
at cs1410.TestClass.findLongestPalindrome(TestClass.java:51)
at cs1410.TestClass.main(TestClass.java:12)


import java.util.Scanner;
import java.util.StringTokenizer;

public class TestClass
{
static Scanner test = new Scanner("Hello world! This is my program.");

public static void main(String[] args)
{
System.out.println(findLongestPalindrome(test));
}

public static boolean isPalindrome(String s)
{
if(s.length() == 0)
{
return false;
}

int stringLength = s.length() -1;

if(stringLength == 0)
{
return false;
}

for(int i = 0; i < stringLength; i++)
{
if(s.charAt(i) == s.charAt(stringLength))
{
stringLength--;
}
else
{
return false;
}
}
return true;
}

public static String findLongestPalindrome(Scanner s)
{
int pLength = 0;
String largestPalindrome = "";
String currentToken;

if(s.nextLine().length() > 0)
{
String input = s.nextLine();
StringTokenizer inputTokens = new StringTokenizer(input);

while(inputTokens.hasMoreTokens())
{
currentToken = inputTokens.nextToken();

if(isPalindrome(currentToken) == true)
{
if(currentToken.length() > pLength)
{
pLength = currentToken.length();
largestPalindrome = currentToken;
}
}
}
}
else
{
return null;
}
return largestPalindrome;
}
}

最佳答案

当您在 findLongestPalindrom() 中访问 Scanner 时,Scanner 中只有一行(“Hello world!这是我的程序” .") 并且您正在尝试读取两行(您丢弃第一行),

if(s.nextLine().length() > 0) // <-- reads the line and advances
{
String input = s.nextLine(); // <-- there isn't another line.

应该是这样的

String input = s.nextLine();
if (!input.isEmpty()) {
// ...

String input = s.nextLine();
if (input.length() > 0) {
// ...

每次您调用 Scanner.nextLine()你消耗了这条线。

关于java - 扫描仪返回未找到行,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28357950/

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