0

if変数が何らかの文字列と等しいかどうかをチェックするステートメントがあります。しかし、文字列にも数字があるかどうかを確認したい。このようなもの:

if(thestring.equals("I, am awesome. And I'm " + Somehowgetifthereisanumberhere + " years old")) {
    //Do stuff
}

またはより具体的には、xが未知の数である場合、そこに数 (任意の数) があることを知るためだけに:

String str = item.substring(item.indexOf("AaAaA" + x), item.lastIndexOf("I'm cool."));

どうやってするか?

4

4 に答える 4

5

正規表現を使用します:

if(thestring.matches("^I, am awesome. And I'm \\d+ years old$")) {
    //Do stuff
}
于 2013-05-21T18:39:16.940 に答える
2

この正規表現は、任意の文字列内で 1 桁、2 桁、または 3 桁の数字 (102 歳の場合) を見つける必要があります。

import java.util.regex.Matcher;
import java.util.regex.Pattern;

public class TestClass {

public static void main(String[] args) {
    Pattern p = Pattern.compile("\\d\\d?\\d?");
    Matcher m = p.matcher("some string with a number like this 536 in it");
    while(m.find()){
        System.out.println(m.group());  //This will print the age in your string
        System.out.println(m.start());  //This will print the position in the string where it starts
    }
  }
}

または、文字列全体をテストするには、次のようにします。

Pattern p = Pattern.compile("I, am awesome. And I'm \\d{1,3} years old");  //I've stolen Michael's \\d{1,3} bit here, 'cos it rocks.
Matcher m = p.matcher("I, am awesome. And I'm 65 years old");
    while(m.find()){
        System.out.println(m.group());
        System.out.println(m.start());
}
于 2013-05-21T18:54:21.833 に答える
2

正規表現を使用できます。

Pattern pattern = Pattern.compile(".*[^0-9].*");

参考文献:

于 2013-05-21T18:41:29.980 に答える
1

正規表現を使用する必要があります。参照 - Java で正規表現を使用して値を抽出する

文字 'd'、'e'、または 'f' を照合するには、次のようにします。

[a-z&&[def]]   

また -レッスン: 正規表現

パターンクラスも勉強になります

于 2013-05-21T18:39:37.217 に答える