【解決方法】文字列を指定して、それが整数かどうかを判断します。 たとえば、文字列「123」は整数ですが、文字列「hello」はそうではありません。 (コーデックス)

プログラミングQA


私は最近、codehs という Web サイトを使用して Java の学習を開始しましたが、この問題に行き詰まっています。 isInteger というメソッドを作成して、文字列が整数かどうかを判断し、整数の場合は true を返し、そうでない場合は false を返します。 どうすればこれを行うことができますか? 私はたくさんのことを試しましたが、何もうまくいかないようで、ただすることはできません

System.out.println(Character.isDigit(‘1’));

このタスクを実行するために isInteger というメソッドを作成する必要があるため、アイデアはありますか?

私が試したこと:

Java
public class Scratchpad extends ConsoleProgram
{
    public void run()
    {
        // Add your own tests here
        System.out.println(isInteger(str));
    }

    // Copy and paste your Unit Test method here
    public boolean isInteger(String str)
    {
    
        if(Character.isDigit('1'))
        {
            return true;
        }
        else
        {
            return false;   
        }
    }

}

解決策 1

値が整数かどうかを確認するには

public boolean isInteger(String number ){
    try{
        Integer.parseInt(number);
    }catch(Exception e ){
        return false;
    }
    return true;
}

解決策 3

私は、1 つを除くすべての状況で機能するコードを実行しました。 彼らがテストした入力の 1 つが間違って入力されていることが判明しました。 そのうちの 1 つは “1O1” (1 つは数字、もう 1 つは大文字の O) である必要がありますが、彼らはそれを “101” と入力しました。すべてゼロであり、採点ウィンドウを通過しません。 ウィンドウで入力方法の違いを確認し、どうあるべきかを知ることができます。
他のすべてで機能した私のコードは次のとおりです。

public boolean isInteger(String str) //char は String でした
{
for(int i = 0; i < str.length(); i++)
{
if(Character.isDigit(str.charAt(i)))
true を返します。
}
false を返します。
}

この個人にとっては少し遅れていますが、他の人がそれに出くわしたときに役立つかもしれません.

解決策 5

public boolean isInteger(String str)
{
    int length = str.length(); //String length

    boolean isNum;
    boolean integer; //<--- final var used for return

    int yay = 0; // 1 added for every number
    int na = 0; // 1 added for every string
    
// In case the string is ""
    if(length == 0)
    {
        integer = false;
        return integer;
    }
    
//The real deal. . .
    for (int i = 0; i < length; i++)
    {
        char digit = str.charAt(i); //Receives 1 char at a time
        isNum = Character.isDigit(digit); //Finds out if char is a digit
        
        if(isNum == true)
        {
            yay++; //Adds one for every integer
        }
        else
        {
            na++; //Adds one for every non-integer
        }
    }
    
    if (na > 0)
    {
        integer = false; //That means all of the digits were true for isNum variable
    }
    else
    {
        integer = true; //That means a/many digits were false for isNum variable
    }
    
    return integer;
}

解決策 2

あなたのコードは正しく動作します。 codeHSチェックコード機能が通らない? もしそうなら、彼らが説明で要求する仕様はありますか?

解決策 4

public boolean isInteger(String str)
{

if (str.equals(“”))
{
false を返します。
}

for(int i=0; i< str.length();i++)
{

char ch = str.charAt(i);
if(!Character.isDigit(ch))
{
false を返します。
}

}
true を返します。
}

コメント

タイトルとURLをコピーしました