我尝试在"区域代码:9916-4203" 中仅获得此部分" 9916-4203" 机器人。我怎么能这样做?
我尝试了下面的代码,我使用了子串方法,但它没有工作:
firstNumber = Integer.parseInt(message.substring(11, 19));
答案 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
正如已经提到的,如果有任何非数字字符,您将无法解析任何String
到Integer
答案 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代码