如何使用子字符串获取文本

时间:2015-03-18 12:58:54

标签: android

我尝试在"区域代码:9916-4203" 中仅获得此部分" 9916-4203" 机器人。我怎么能这样做?

我尝试了下面的代码,我使用了子串方法,但它没有工作:

firstNumber = Integer.parseInt(message.substring(11, 19));

4 个答案:

答案 0 :(得分:0)

在Java中,substring()方法适用于第一个参数包含,第二个参数是独占。含义"Hello".substring(0, 2);将导致字符串He

除了排除不像@Opiatefuchs这样的数字的解析之外,你的子串方法应该是message.substring(12, 21)

答案 1 :(得分:0)

如果您知道该字符串包含"区域代码:"你不能替换吗?

message = message.replace("Region Code:", "");

答案 2 :(得分:0)

假设您String中只有一个电话号码,以下内容将删除所有非数字字符并解析结果数字:

     public static int getNumber(String num){
     String tmp = "";
     for(int i=0;i<num.length();i++){
        if(Character.isDigit(num.charAt(i)))
        tmp += num.charAt(i);
     }
     return Integer.parseInt(tmp);
    }

您的案例输出:99164203

正如已经提到的,如果有任何非数字字符,您将无法解析任何StringInteger

答案 3 :(得分:0)

我猜你想要提取的是完整的区域代码文本减去标题。所以也许使用正则表达式会很适合你?

String myString = "Region Code:9916-4203";
String match = "";

String pattern = "\:(.*)";
Pattern regEx = Pattern.compile(pattern);
Matcher m = regEx.matcher(myString);

// Find instance of pattern matches
Matcher m = regEx.matcher(myString);
if (m.find()) {
    match = m.group(0);
}

变量match将包含“9916-4203” 这应该适合你。

源自http://android-elements.blogspot.in/2011/04/regular-expressions-in-android.html

的Java代码