1

こんにちは皆さん、ここではほとんど問題がありません。まず、スキャナーからの文字列をintに解析したいので、後でIFステートメントを使用できます。コードは次のようになります

List<String> list = new ArrayList<String>();
    Scanner numbers = new Scanner(System.in);

    do {
        System.out.println("Current list is " + list);
        System.out.println("Add more? (y/n)");

        if (numbers.next().startsWith("y")) 
        {
            if(Integer.parseInt(numbers)> 0 && Integer.parseInt(numbers) < 101)
            {// i get error on above line, and im kinda lost here


                System.out.println("Enter : ");
                list.add(numbers.next());
            }
        }
        else
        {            
            break;                
        }           
    }while (true);

助けていただければ幸いです。うまくいけば、自分自身と自分の問題も明確になりました。

編集:

        do {

        System.out.println("Current list is " + list);
        System.out.println("Add more? (y/n)");

        if (numbers.next().startsWith("y")) 
        {                               
            System.out.print("Enter: "); 
            System.out.flush();                
            final int n = Integer.parseInt(numbers.next());
            if (n > 0 && n < 101) 
            {
                list.add(n);
                // this is where i get the error.

                //no suitable method found for add(int)
                // method java.util.List.add(int,java.lang.String) is not applicable
                // (actual and formal arguments lists differ in length)
                // method java.util.List.add(java.lang.String) is not applicable
                // (actual argument int cannot be converted to java.lang.String 
                // by method invocation conversion).

                // end of log
            }
            else
            {
                System.out.println("Number you have entered exceeds raange between 0-100");
            } 
        }
        else
        {            
            break;                
        }           
    }while (true);
4

2 に答える 2

1

あなたが書きたかったと思います

System.out.print("Enter: "); System.out.flush();
final int n = Integer.parseInt(numbers.next());
if (n > 0 && n < 101) list.add(n);

java.util.Scannerメソッドも含まれているためnextInt、の必要はありませんInteger.parseInt。あなたはただ言うことができますnumbers.nextInt()

また、リスト宣言をからに変更する必要がありList<String>ますList<Integer>

于 2012-07-10T20:53:50.980 に答える
0

非整数(文字列)を整数に解析しようとしています。これはNumberFormatException、入力が非整数の場合にスローされます。

int n=0;

try
{
n = Integer.parseInt(numbers.next());
}catch(Exception e)
{
}

if(n > 0 && n<101)
{
//your logic
}
于 2012-07-10T20:54:32.537 に答える