2016-06-28 77 views
1

我有一個應用程序,其中包含手機號碼編輯文本,其中用戶可以編輯手機號碼,我必須發送兩個請求到服務器,如: - 手機號碼和mssdn,手機號碼(這是全長)和mssdn(其中包含手機號碼最後4位數)我。如何能做到這一點如何獲取android的最後4位數字?

+0

什麼是努力實現?只是聯繫號碼的最後4位數字?如果是這樣的話,檢查字符串的長度和提取最後4個字符 – silverFoxA

+0

不,我想當用戶輸入手機號碼,然後我必須完整的手機號碼與該手機號碼的最後4位數字到服務器 – Siddharth

+0

請你可以更精確一點。你是沒有意義的wm – silverFoxA

回答

3

試試這個。在調用subString之前檢查長度是否大於4以避免IndexOutOfBounds異常。

EditText mEdtPhoneNumber = (EditText) findViewById(R.id.edtPhoneNumber); 
    String phoneNumber = mEdtPhoneNumber.getText().toString().trim(); 
    String strLastFourDi = phoneNumber.length() >= 4 ? phoneNumber.substring(phoneNumber.length() - 4): ""; 

什麼是mssdn?它是msisdn?

+0

謝謝...........其工作 – Siddharth

0

你可以做這樣的事情:

EditText phoneNumberEditText = (EditText) findViewById(R.id.phoneNumberEditText); 
    String phoneNumber = phoneNumberEditText.getText().toString(); 
    String lastFourDigits = phoneNumber.substring(phoneNumber.length() - 4); 
1

使用模(%)運算符:

要獲得最後的數字:使用number % 10

得到最後2位數字:使用number % 100

例如: 42455%10000 = 2455

+1

切割者的想法!我沒有想過,但將電話號碼視爲整數並不總是一個好方法。對於使用模數運算符,您需要將電話號碼錶示爲整數,但以這種方式可輕易超過整數的限制。因此,最好使用String和** subString()**數字的所需部分。 –

+0

@TodorKostov你是對的,我以爲OP打算把它作爲一個整數,因爲他沒有指定類型:) –

0
List<Integer> f(String str){ 
     ArrayList<Integer> digits = new ArrayList<>(); 
     if (null == str || str.length() < 4){ 
      Log.i(LOG_TAG, "there are less than 4 digits"); 
      return digits; 
     } 
     String digitsStr = str.substring(str.length() - 4); 
     for (char c : digitsStr.toCharArray()){ 
      try { 
       Integer digit = Integer.parseInt(String.valueOf(c)); 
       digits.add(digit); 
      } catch (Exception e){ 
       continue; 
      } 
     } 
     return digits; 
    } 
1

你應該使用正則表達式,因爲這樣只會讓你的結果,如果最後四個字母實際上是對另一方面號碼substring功能只是給你最後四個字母不管他們是numberscharacters。例如4344sdsdss4會給你DSS4這顯然不是的電話號碼

String str="4444ntrjntkr555566"; 
    Pattern p = Pattern.compile("(\\d{4})$"); 
     Matcher m = p.matcher(str); 
     if (m.find()) { 
     System.out.println(m.group(m.groupCount())); 
     } 

的一部分,這將產生5566

工作

//ð意味着數字

{4}固定長度爲4

$意味着在年底

0

如果的EditText元素就像

EditText phoneEditText; 

可以使用

String mobile_no = phoneEditText.getText().toString(); 
int length = mobile_no.length(); 
String mssdn  = mobile_no.substring(length-4,length); 

您可能要驗證它是否在提交之前一個手機號碼。

閱讀EditText.getText()here

閱讀有關String.substring()here

相關問題