0

正確に 2 桁の整数を入力するようユーザーに求める Java プログラムを作成する必要があります。次に、個々の桁の合計を画面に表示します。

私はここで立ち往生しています。私は何を間違っていますか?

import java.util.Scanner ;

public class ss {
    public static void main(String[] args)
    {

       Scanner input  = new Scanner(System.in);

       int x;

       System.out.println("Please Enter a number consists of 2 digits only : ");

       x = input.nextInt();
       x.length() == 2;
   }
}

最後の行にエラーが含まれています。

4

6 に答える 6

1

変数xの型はintであるため、メソッドを呼び出すことはできません。入力を として読み取るか、 をthen callにString変換するか、または がとの間であることをテストする必要があります。intStringlength()int1099

于 2013-11-01T16:11:30.127 に答える
0

整数で長さを呼び出すことはできません

if(x>=10 && x<=99)
{
//write your code here
}
于 2017-01-07T07:47:24.550 に答える
0

intメソッドを呼び出しての長さを見つけることはできませんが、 の長さを見つけることはできますString

をに変換して、その長さを調べてみてintくださいString

boolean isTwoDigits = x.toString().length() == 2;
于 2013-11-04T23:04:50.610 に答える
0

xオブジェクトではなくプリミティブであるため、エラーが発生します。のようなメソッドを持つのはオブジェクトだけですlength()。整数の長さをすばやく簡単に決定する方法は、 を使用することMath.log()です。

public int length(int n){
    if (n == 0) return 1; // because Math.log(0) is undefined
    if (n < 0) n = -n; // because Math.log() doesn't work for negative numbers
    return (int)(Math.log10(n)) + 1; //+1 because Math.log10 returns one less
                                     //than wanted. Math.log10(10) == 1.
}

この方法は、整数 a の b を底とする対数が整数 a の長さに関連しているという事実を利用しています。

または、メソッドの使用方法がわからない場合は、次のようにすることもできます (n がチェックする整数であると仮定します)。

int length = (n == 0)? 1: ((n > 0)? (int) (Math.log(n)) + 1: (int) (Math.log(-n)) + 1);

または、三項演算子を使用しない場合は、次のように展開できます。

int length = -1; //placeholder; might not need it.
if (n == 0) length = 1;
else if (n > 0) length = (int) (Math.log(n)) + 1;
else length = (int) (Math.log(-n)) + 1;
于 2013-11-01T16:22:15.680 に答える