如何从android

时间:2017-01-07 07:25:32

标签: android fetch

我想在我的应用程序中使用register,我应该将密码和verifyCode发送到用户手机上 但我应该从消息中读取verifyCode 并将自动设置号码转换为 verifyCode EditText

我的讯息格式:

  

您好,欢迎来到我们的服务。

     

您的密码
12345

     

您的verifyCode
54321

我该怎么办?请帮帮我< 3

2 个答案:

答案 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);
    }