如何在android中获取最后4位数字?

时间:2016-06-28 07:44:16

标签: android

我有一个应用程序,其中包含手机号码编辑文本,用户可以编辑手机号码,我必须向服务器发送两个请求,如: - 手机号码和mssdn,手机号码(全长)和mssdn(包含手机号码最后4位数。)。我该怎么做?

6 个答案:

答案 0 :(得分: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 ??

答案 1 :(得分:1)

使用模数(%)运算符:

要获取最后一位数字,请使用number % 10

要获取最后两位数字,请使用number % 100

等等

例如:  42455%10000 = 2455

答案 2 :(得分:1)

你应该使用正则表达式,因为如果最后四个字母实际上是数字,这只会给你结果substring函数只是给你最后四个字母,无论它们是numbers还是{ {1}}。例如 4344sdsdss4 会给你 dss4 ,这显然不是电话号码的一部分

characters

这将产生5566

工作

  

// d表示数字

     

{4},修正长度为4

     

$意味着最后

答案 3 :(得分:0)

你可以这样做:

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

答案 4 :(得分: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;
    }

答案 5 :(得分: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