【问题标题】:how work with trim in java and android?如何在 java 和 android 中使用 trim?
【发布时间】:2016-07-27 16:47:39
【问题描述】:

我有一个活动,我有这个 sn-p....

et = (EditText) findViewById(R.id.et);
tv = (TextView) findViewById(R.id.textView8);
String name =et.getText().toString();
String a ="a";
String b ="b";
String c ="c";
String d ="d";
String e ="e";
String f ="f";
String g ="g";
String h ="h";
String a1 ="\u24B6";
String b1 ="\u24B7";
String c1 ="\u24B7";
String d1 ="\u24B9";
String e1 ="\u24BB";
String f1 ="\u24BB";
String g1 ="\u24BD";
String h1 ="\u24BD";
name =name.replaceAll(a,a1);
name =name.replaceAll(b,b1);
name =name.replaceAll(c,c1);
name =name.replaceAll(d,d1);
name =name.replaceAll(e,e1);
name =name.replaceAll(f,f1);
name =name.replaceAll(g,g1);
name =name.replaceAll(h,h1);
tv.setText(name.trim()); 

在编辑文本中写入 abc 时,在文本视图中显示空间

什么是解决方案?

【问题讨论】:

  • 可能是使用的字体不支持使用的unicode字符?为了测试尝试不同的 unicode 字符。此外,我会使用 replace(char, char) 而不是使用正则表达式的 replaceAll(可能会导致 unicode 出现问题?)

标签: java android xml unicode trim


【解决方案1】:

您只从EditText 读取值一次 - 当您开始一项活动时。有一个完整的示例:输入EditText 时会替换文本。

@Override
protected void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    setContentView(R.layout.activity_main);

    final EditText et = (EditText) findViewById(R.id.et);
    final TextView tv = (TextView) findViewById(R.id.textView8);
    final String a = "a";
    final String b = "b";
    final String c = "c";
    final String d = "d";
    final String e = "e";
    final String f = "f";
    final String g = "g";
    final String h = "h";
    final String a1 = "\u24B6";
    final String b1 = "\u24B7";
    final String c1 = "\u24B7";
    final String d1 = "\u24B9";
    final String e1 = "\u24BB";
    final String f1 = "\u24BB";
    final String g1 = "\u24BD";
    final String h1 = "\u24BD";

    et.addTextChangedListener(new TextWatcher() {
        @Override
        public void beforeTextChanged(final CharSequence s, final int start, final int count, final int after) {

        }

        @Override
        public void onTextChanged(final CharSequence s, final int start, final int before, final int count) {
            String name = et.getText().toString();
            name = name.replaceAll(a, a1);
            name = name.replaceAll(b, b1);
            name = name.replaceAll(c, c1);
            name = name.replaceAll(d, d1);
            name = name.replaceAll(e, e1);
            name = name.replaceAll(f, f1);
            name = name.replaceAll(g, g1);
            name = name.replaceAll(h, h1);
            tv.setText(name.trim());
        }

        @Override
        public void afterTextChanged(final Editable s) {

        }
    });
}

【讨论】:

  • 此活动在运行应用时停止
猜你喜欢
  • 2022-07-12
  • 2011-03-26
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2019-11-28
  • 2013-01-05
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多