线程“主”中的异常java.lang.NumberFormatException:用于输入aaaabbaa

问题描述 投票:0回答:4
import java.util.*;
import java.lang.*;
import java.io.*;

class GFG 
{
    static BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    public static void main (String[] args) throws IOException
    {
        int max=0;
        String s= br.readLine();
        int t=Integer.parseInt(br.readLine());
        while(t-->0)
        {
            String w=" ",x=" ";
            int l=s.length();
            for(int i=0;i<l;i++)
            {
                char c=s.charAt(i);
                w=w+c;
                x=c+x;
                if(w.equalsIgnoreCase(x))
                {
                    if(w.length()>max)
                    {
                        max=w.length();

                    }
                }
                if(x.length()>max)
                System.out.println(x);
                w=" ";
                x=" ";
            }
        }
    }
}

我在输入“ aaaabbaa”时遇到此错误

线程“ main”中的异常java.lang.NumberFormatException:对于输入字符串:“ aaaabbaa” 在java.base / java.lang.NumberFormatException.forInputString(NumberFormatException.java:65) 在java.base / java.lang.Integer.parseInt(Integer.java:652) 在java.base / java.lang.Integer.parseInt(Integer.java:770) 在GFG.main(File.java:14)

对于自定义Input of

5aa修道院abaaabbaawwwyyywwwrfkqyuqfjkxykjqlrzzfmlvyoshiktodnsjjp

Outputaabbaa偷偷摸摸的wwwyyywww[Rzz

我是java的新手,并且在网页编译器上的每个程序中都出现此错误

请告诉我我要去哪里哪里

java string palindrome
4个回答
0
投票

您可能应该检查br.readLine()是否为空值。您要调用它两次,但是输入中只有一行,因此第二次它返回null,并且Integer.parseInt无法处理它并引发错误。


0
投票

语句int t = Integer.parseInt(br.readLine());引发异常,因为当方法br.readLine()返回不可转换为数字(整数)的值时。Integer.parseInt()方法的参数值必须是可以转换为整数的字符串。如果要获取输入字符串的长度,只需使用int t = s.length;在语句String s = br.readLine();]之后


0
投票

起初,您以字符串形式输入了输入,然后使用Integer.parseInt()将字符串转换为int,Java无法将字符串直接转换为int数据类型。


0
投票

似乎您应该只在while循环的开头移动字符串s = br.readLine()。您的代码先读取一个字符串,然后读取一个数字,但实际上,仅基于自定义输入的外观,您应该先读取一个数字,然后读取该数量的字符串。像这样:

最新问题
© www.soinside.com 2019 - 2025. All rights reserved.