亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

如何從隨機字符串消息中提取 6 位數字?6 位數字不在消息的開頭或結尾

如何從隨機字符串消息中提取 6 位數字?6 位數字不在消息的開頭或結尾

12345678_0001 2023-07-19 15:02:50
我有一條帶有 6 位 OTP 的字符串消息。但這不是在開始或結束時。所以索引沒有幫助。替換是有效的,但我的消息可能隨時改變,所以這個技巧也失敗了。我的消息示例:您的一次性密碼是:123456FA+9qCX9VSuString subFirst= message.replace("<#> Your OTP code is : ", ""); String finalOTP = message.replace("FA+9qCX9VSu", "");它僅產生此靜態消息的預期結果。如何僅獲取任何消息的 6 位數字?;蛘哌€有其他方法從消息中提取 OTP 嗎?
查看完整描述

7 回答

?
慕婉清6462132

TA貢獻1804條經驗 獲得超2個贊

你可以這樣得到otp。

String allNum=message.replaceAll("[^0-9]","");
String otp=allNum.substring(0,6);


查看完整回答
反對 回復 2023-07-19
?
哈士奇WWW

TA貢獻1799條經驗 獲得超6個贊

您可以從任何消息中提取任意 6 位數字String?!皘” 用于查找更多可能的組合。只有“\d{6}”還可以為您的問題提供正確的結果。


//find any 6 digit number

Pattern mPattern = Pattern.compile("(|^)\\d{6}");


if(message!=null) {

    Matcher mMatcher = mPattern.matcher(message);

    if(mMatcher.find()) {

        String otp = mMatcher.group(0);

        Log.i(TAG,"Final OTP: "+ otp);

    }else {

        //something went wrong

        Log.e(TAG,"Failed to extract the OTP!! ");

    }

}


查看完整回答
反對 回復 2023-07-19
?
叮當貓咪

TA貢獻1776條經驗 獲得超12個贊

String message="OTP 為 145673,并且在接下來的 20 分鐘內同樣有效"; 

System.out.println(message.replaceFirst("\d{6}", "******"));

我希望這有幫助。


查看完整回答
反對 回復 2023-07-19
?
LEATH

TA貢獻1936條經驗 獲得超7個贊

如果您的消息始終以“您的 OTP 代碼是:”開頭,并且在代碼后有換行符 (\n),則使用以下內容:


Pattern pattern = Pattern.compile("is : (.*?)\\n", Pattern.DOTALL);

    Matcher matcher = pattern.matcher(message);

    while (matcher.find()) {

      Log.i("tag" , matcher.group(1));

    }


查看完整回答
反對 回復 2023-07-19
?
鴻蒙傳說

TA貢獻1865條經驗 獲得超7個贊

您可以使用正則表達式查找數字子字符串,只需從子字符串中先取 6。

查看完整回答
反對 回復 2023-07-19
?
滄海一幻覺

TA貢獻1824條經驗 獲得超5個贊

使用這樣的正則表達式:


public static void main(final String[] args) {

    String input = "Your OTP code is : 123456\r\n" + "\r\n" + "FA+9qCX9VSu";

    Pattern regex = Pattern.compile(":\\s([0-9]{6})");

    Matcher m = regex.matcher(input);

    if (m.find()) {

        System.out.println(m.group(1));

    }

}


查看完整回答
反對 回復 2023-07-19
?
牛魔王的故事

TA貢獻1830條經驗 獲得超3個贊

嘗試一下希望這會對您有所幫助。


String expression = "[0-9]{6}";

    CharSequence inputStr = message;


    Pattern pattern = Pattern.compile(expression, Pattern.CASE_INSENSITIVE);

    Matcher matcher = pattern.matcher(inputStr);


查看完整回答
反對 回復 2023-07-19
  • 7 回答
  • 0 關注
  • 251 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號