我想用语法相反的字符串替换字符串并在 android studio 中打印在 "Edit text" 中?

I want to replace a string with it's grammatical opposite and print in an "Edit text" in android studio?

我写了这段代码来用 "was" 替换 "is"。我不能多说一个字。任何人都可以帮我这样做吗?

    public class MainActivity extends AppCompatActivity {
    EditText editText1, editText2 ;
    Button button;

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);
        editText1 = (EditText)findViewById(R.id.editText);
        editText2 = (EditText)findViewById(R.id.editText2);
        button = (Button)findViewById(R.id.button);
        button.setOnClickListener(new View.OnClickListener() {
            @Override
            public void onClick(View v) {

                String input = editText1.getText().toString();
                String replace =  input.replaceAll("is", "was");
                editText2.setText(replace);
            }
        });
`    }

对于粗略的方法,但它对我有用! 例如,你从 edittext1 得到的是 "this is me !"

 button.setOnClickListener(new View.OnClickListener() {
        @Override
        public void onClick(View v) {

            String input = editText1.getText().toString();
            String replace =  input.replaceAll("is", "was");
            //now you get "this was me!"
            String replace2 = replace.replaceAll("this", "that");
            //now you get "that was me!"
            String replace3 = replace2.replaceAll("me", "yours");
            //at last your replace3 are now is "that was yours!"
            editText2.setText(replace3);
            //editText2 will now display "that was yours!"
        }
    });

我知道这是一种粗略的方法,但对我来说替换多个单词效果很好:)祝你好运

如果你想在单个语句中完成,你可以使用这个方法

String strOutput = inString.replaceAll("call me","cm").replaceAll("as soon as possible","asap");

如果你有很多替代品,你最好采用这种方法

//array to hold replacements
String[][] replacements = {{"is", "was"}, 
                           {"this", "that"}};

//loop over the array and replace
String strOutput = inString;
for(String[] replacement: replacements) {
    strOutput = strOutput.replace(replacement[0], replacement[1]);
}

System.out.println(strOutput);

您可以根据需要选择任何一种方法。

您必须为此功能手动创建映射。 喜欢创建两个数组,一个用于现在动词,一个用于过去动词。当遇到当前数组中的动词时,通过当前数组循环匹配得到它的位置,然后从过去数组中的动词替换它。保持两个数组中语法相反动词的索引相同。这样你就可以做到这一点。 例如 .

当前数组=[is,this]

过去数组=[是,那个]

现在,如果您的句子包含 'is',则获取其索引,即 0 和 将其替换为过去数组中的第 0 个位置字符串