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