如何从字符串中删除文本

时间:2016-03-01 13:03:39

标签: android

下面的代码将列表项复制到剪贴板(联系人),但它工作正常,我想删除复制的数字中的某些字符,如国家/地区代码(+ 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();

    }
}

}

4 个答案:

答案 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,您可以使用单独的变量。