在replace方法或split方法中添加多个值

时间:2018-10-08 10:09:16

标签: java android

我创建了一个具有一个“文本视图”和“编辑文本”的应用程序。如果用户在其中写入内容,它将对单词进行计数。我将空间定义为split,但是我需要更多项进行划分,例如,每次用户键入逗号或句点时,它都会进行空间划分。请帮助我。

这是我的代码:

package com.farmani.wordcounter;

import android.annotation.SuppressLint;
import android.support.v7.app.AppCompatActivity;
import android.os.Bundle;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
import android.widget.TextView;

public class MainActivity extends AppCompatActivity {

TextView tv;
EditText et;

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

     tv = findViewById(R.id.tv);
     et = findViewById(R.id.et);

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

        }

        @SuppressLint("SetTextI18n")
        @Override
        public void onTextChanged(CharSequence s, int start, int before, int count)      
        {

            String text = et.getText().toString();
            text = text.replace("\n "  , " ");
            String[] textArray = text.split(" " );
            tv.setText("Number of Words: " + textArray.length);
        }

        @Override
        public void afterTextChanged(Editable s) 
        {

        }
    });


}
}

2 个答案:

答案 0 :(得分:4)

如果要使用多个分度符进行分割,请使用此

yourString.split("[ ,]");  // this will split whenever either space or comma will be encounter

答案 1 :(得分:0)

您可以轻松地将拆分更改为... = text.split(" |,|\\.");,这是因为字符串Split方法使用 Regex 字符串值作为参数,因此您可以使用< em> Regex ,如果我要描述我的Regex值|,|\\.:-

  1. 第一个空格字符表示空格是定界符之一。
  2. 第二个字符|表示,表示第一个值或第二个值。
  3. 第三个逗号表示逗号(,)是定界符之一。
  4. 第四个字符与第二个字符相同。
  5. 第5和第6个字符是\,应在正则表达式中的句点(.)字符之前使用。
  6. 最后一个字符也是分隔符之一,但这是一个特殊字符,因此您应在Regex中使用此\字符。