我想在我的应用程序中使用register,我应该将密码和verifyCode发送到用户手机上 但我应该从消息中读取verifyCode 并将自动设置号码转换为 verifyCode EditText 。
我的讯息格式:
您好,欢迎来到我们的服务。
您的密码
12345您的verifyCode
54321
我该怎么办?请帮帮我< 3
答案 0 :(得分:0)
假设密码和验证码中的位数是固定的(通常它们与默认值相同),我们可以从字符串中提取数字,然后找到具有验证码的子串。这个假设是为了简单起见。
String numberOnly= str.replaceAll("[^0-9]", "");
String verifyCode = numberOnly.substring(6);
此处String verifyCode = numberOnly.substring(6);
获取字符串的最后5位数字,即您的验证码。您也可以写numberOnly.substring(6,10);
以避免混淆。
但这很容易出现像StringIndexOutOfBoundsException
这样的错误,所以每当你想得到从索引i
开始直到字符串结尾的子字符串时,总是写numberOnly.substring(i)
。
答案 1 :(得分:0)
有很多方法可以做到这一点。您可以使用一些复杂的regex
或使用简单的spilt
方法。
试试这个,
String str = "Hi, welcome to our service.\n"
+ "\n"
+ "your password \n"
+ "12345\n"
+ "\n"
+ "your verifyCode \n"
+ "54321";
// Solution #1
String[] parts = str.split("\n");
System.out.println(parts[3]);
System.out.println(parts[6]);
// Solution #2
String PAT = "(password|verifyCode)\\s+(\\d+)";
Pattern pats = Pattern.compile(PAT);
Matcher m = pats.matcher(str);
while (m.find()) {
String grp = m.group(2);
System.out.println(grp);
}