「abcd123fx」という文字列があるとしましょう。ここで、「a」、「b」、「c」、「d」などが数値であるかどうかを (順番に) チェックし、そうでない場合は false を返すメソッドを作成したいと考えています。char の n 番目の位置と各 char を順番に処理する方法がわかりません。
10 に答える
文字クラスを使用して、文字が数字の文字であるかどうかを確認できます。
String text = ...
char ch = texct.charAt(nth);
if (Character.isLetter(ch)) {
// is a letter
} else if (Character.isDigit(ch)) {
// is a digit
}
注:これらのメソッドは、Unicodeの異なるブロックの文字をサポートします。たとえば、アラビア語または韓国語の文字を受け入れます。
ドキュメントを確認してください。charAt関数を使用できます。
if (Character.isLetter(yourString.charAt(index)))
// ... Letter
if (Character.isDigit(yourString.charAt(index)))
// ... Number
このページをチェック
これを行うにはいくつかの方法があります。最も単純なのは、おそらく次のようなものです。
Character.isDigit(someString.charAt(x))
or a regex way would be someString.substring(x,x).matches("[0-9]")
charAtを使用する必要がある文字列の n 番目の文字を取得するには、Charachter のisLetterOrDigitを使用する必要があります。
通常、これらの問題に直面した場合は、適切なメソッドを探して javadoc を検索する必要があります。
詳細については、oracle.com のJava チュートリアルを参照してください。
具体的には、この主題について:
-あなたが初心者だと言ったように、私はこれを使用して複雑にするつもりはありませんが、Regex
組み込みのJava 機能を使用してこれに答えます。
-最初にsubString()
メソッドを使用して文字列の「abcd」部分を取得し、次にtoCharArray()
メソッドを使用して要素にString
分割し、次にクラスのメソッドを使用して数字かどうかを確認します。char
Character
isDigit()
例えば:
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");
}
}
}
}
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));
}
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;
}
これはあなたを助けるかもしれません
public static boolean isNumeric(String str) {
return str.matches("-?\\d+(.\\d+)?");
}
public static void main(String[] args){
System.out.println(isNumeric("abcd123fx"));
}
数値文字列がある場合はtrueを返し、それ以外の場合はfalseを返します