下面的代码将列表项复制到剪贴板(联系人),但它工作正常,我想删除复制的数字中的某些字符,如国家/地区代码(+ 1,+ 234,+ 324)," - & #34;,空格和括号,那么它是如何做到的?
public void doCopy(String text) {
try {
if (android.os.Build.VERSION.SDK_INT < 11) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(text);
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData
.newPlainText("WordKeeper", text);
clipboard.setPrimaryClip(clip);
}
this.finish();
Toast.makeText(this, "Contact copied!", 5000).show();
} catch (Exception e) {
Toast.makeText(this, "Error copying contact!", 5000).show();
}
}
这是我到目前为止所尝试的,但它没有做任何事情
public void doCopy(String text) {
try {
if (android.os.Build.VERSION.SDK_INT < 11) {
android.text.ClipboardManager clipboard = (android.text.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
clipboard.setText(text);
text.replace("+1", "");//
} else {
android.content.ClipboardManager clipboard = (android.content.ClipboardManager) getSystemService(Context.CLIPBOARD_SERVICE);
android.content.ClipData clip = android.content.ClipData
.newPlainText("WordKeeper", text);
clipboard.setPrimaryClip(clip);
text.replace("+1", "");//
}
this.finish();
Toast.makeText(this, "Contact copied!", 5000).show();
} catch (Exception e) {
Toast.makeText(this, "Error copying contact!", 5000).show();
}
}
}
答案 0 :(得分:3)
text.replace("+1", "");
会替换字符串,但不会修改原始字符串。所以你应该这样做
text = text.replace("+1", "");
答案 1 :(得分:0)
你必须逃避&#34; +&#34;使用反斜杠的标志。
text = text.replace("\\+1", "");
答案 2 :(得分:0)
只需使用以下表达式删除电话号码字符串中的所有不需要的字符
String text = "+1 3545,453455";
text = text.replaceAll("[^a-zA-Z0-9]", "");
// for example the country code is +1
String country_code = "+1".replaceAll("[^a-zA-Z0-9]", "");
System.out.println(text.substring(country_code.length(), text.length()));
答案 3 :(得分:0)
正如您所提到的,您有10个静态国家/地区代码可以处理相关代码的上下文,解决方案可以是
text = text.toString().replaceAll("[^\\d.]", "").replace("+1", "");
这将从数字中删除所有格式,并为您提供没有任何格式和没有国家/地区代码的数字。如果您还需要原始复制的数字,而不是将值存回text
,您可以使用单独的变量。