-2

「abcd123fx」という文字列があるとしましょう。ここで、「a」、「b」、「c」、「d」などが数値であるかどうかを (順番に) チェックし、そうでない場合は false を返すメソッドを作成したいと考えています。char の n 番目の位置と各 char を順番に処理する方法がわかりません。

4

10 に答える 10

6

文字クラスを使用して、文字が数字の文字であるかどうかを確認できます。

String text = ...
char ch = texct.charAt(nth);
if (Character.isLetter(ch)) {
    // is a letter
} else if (Character.isDigit(ch)) {
    // is a digit
}

注:これらのメソッドは、Unicodeの異なるブロックの文字をサポートします。たとえば、アラビア語または韓国語の文字を受け入れます。

于 2013-01-08T10:00:20.543 に答える
3

ドキュメントを確認してください。charAt関数を使用できます。

于 2013-01-08T09:59:43.383 に答える
2
if (Character.isLetter(yourString.charAt(index)))
    // ... Letter

if (Character.isDigit(yourString.charAt(index)))
   // ... Number

このページをチェック

于 2013-01-08T10:00:33.643 に答える
2

これを行うにはいくつかの方法があります。最も単純なのは、おそらく次のようなものです。

Character.isDigit(someString.charAt(x))
or  a regex way would be someString.substring(x,x).matches("[0-9]")
于 2013-01-08T10:02:11.190 に答える
2

charAtを使用する必要がある文字列の n 番目の文字を取得するには、Charachter のisLetterOrDigitを使用する必要があります。

通常、これらの問題に直面した場合は、適切なメソッドを探して javadoc を検索する必要があります。

于 2013-01-08T10:02:26.127 に答える
2

詳細については、oracle.com のJava チュートリアルを参照してください。

具体的には、この主題について:

于 2013-01-08T10:04:20.543 に答える
2

-あなたが初心者だと言ったように、私はこれを使用して複雑にするつもりはありませんが、Regex組み込みのJava 機能を使用してこれに答えます

-最初にsubString()メソッドを使用して文字列の「abcd」部分を取得し、次にtoCharArray()メソッドを使用して要素にString分割し、次にクラスのメソッドを使用して数字かどうかを確認します。charCharacterisDigit()

例えば:

public class T1 {

    public static void main(String[] args){


        String s = "abcd123fx";

        String str = s.substring(0,4);
        System.out.println(str);

        char[] cArr = str.toCharArray();

        for(char a :cArr){

            if(Character.isDigit(a)){

                System.out.println(a+" is a digit");
            }else{

                System.out.println(a+" is not a digit");
            }
        }
      }
}
于 2013-01-08T10:05:22.363 に答える
1

ASCIIテーブルを調べることもできます

これに応じて、メソッドを作成できます。

private boolean isNumber(char a) {
    int i = a;
    if(i >= 48 && i <=57)
        return true;
    else 
        return false;
}

// now you can look by a String

private void checkString() {
    String x = "abcd123fx ";

    for(char counter : x.toCharArray())
        System.out.println(isNumber(counter));
}
于 2013-01-08T10:00:10.600 に答える
1
public static void main(String[] args){
    System.out.println(checkNumber("123a44"));
}

public static boolean checkNumber(String s){
    for(int i = 0; i < s.length(); i++){
        if(Character.isDigit(s.charAt(i))){
            continue;
        }
        else{
            return false;
        }
    }
    return true;
}
于 2013-01-08T10:08:54.297 に答える
1

これはあなたを助けるかもしれません

public static boolean isNumeric(String str) {
    return str.matches("-?\\d+(.\\d+)?");
}

public static void main(String[] args){
    System.out.println(isNumeric("abcd123fx"));
}

数値文字列がある場合はtrueを返し、それ以外の場合はfalseを返します

于 2013-01-08T10:03:05.953 に答える