我想用语法相反的字符串替换字符串并在 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 个位置字符串
我写了这段代码来用 "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 个位置字符串