Java 自动更正之类的代码需要帮助
Java help needed for a code like Autocorrect
我正在编写一个与自动更正相反的程序。逻辑是用户输入一个句子,当按下一个按钮时,应该显示用户输入的句子的语法反义词。我大致能够得到代码。我使用了匹配器 logic.But 我无法获得所需的输出。我正在将代码与这个问题联系起来。谁能帮帮我?
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = editText.getText().toString();
String store = input;
String store1 [] = store.split(" ");
String correct[] = {"is","shall","this","can","will"};
String wrong [] = {"was","should","that","could","would"};
String output = "";
for (int i=0;i<store1.length;i++) {
for(int j=0;j<correct.length;j++){
if(store1[i].matches(correct[j])) {
output = input.replace(store1[i], wrong[j]);
//store1[i] = wrong[j];
}
else
{
input.replace(store1[i], store1[i]);
//store1[i] = store1[i];
}
}
mTextView.setText(output);
}
}});
通过查看您的代码,我发现了一些冗余和未使用的变量。如下所示。
String store = input;
String store1 [] = store.split(" ");
如下所示,我为您做了一些清理并使用 Map 接口实现了您的逻辑。错误的值必须是映射的键,这样我们就可以使用 Map.containKeys(word) 轻松确定单词是否为错误值。如果找到键,那么我们将输出变量与正确的词连接起来。
String input = editText.getText().toString().split(" ");
Map<String, String> pairs = new HashMap<>();
pairs.put("is", "was");
pairs.put("shall", "should");
pairs.put("this", "that");
pairs.put("can", "could");
pairs.put("will", "would");
String output = "";
for (String word : input) {
if (pairs.containsKey(word)) {
output = output + pairs.get(word) + " ";
} else {
output = output + word + " ";
}
}
mTextView.setText(output.trim());
我正在编写一个与自动更正相反的程序。逻辑是用户输入一个句子,当按下一个按钮时,应该显示用户输入的句子的语法反义词。我大致能够得到代码。我使用了匹配器 logic.But 我无法获得所需的输出。我正在将代码与这个问题联系起来。谁能帮帮我?
imageButton.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String input = editText.getText().toString();
String store = input;
String store1 [] = store.split(" ");
String correct[] = {"is","shall","this","can","will"};
String wrong [] = {"was","should","that","could","would"};
String output = "";
for (int i=0;i<store1.length;i++) {
for(int j=0;j<correct.length;j++){
if(store1[i].matches(correct[j])) {
output = input.replace(store1[i], wrong[j]);
//store1[i] = wrong[j];
}
else
{
input.replace(store1[i], store1[i]);
//store1[i] = store1[i];
}
}
mTextView.setText(output);
}
}});
通过查看您的代码,我发现了一些冗余和未使用的变量。如下所示。
String store = input;
String store1 [] = store.split(" ");
如下所示,我为您做了一些清理并使用 Map 接口实现了您的逻辑。错误的值必须是映射的键,这样我们就可以使用 Map.containKeys(word) 轻松确定单词是否为错误值。如果找到键,那么我们将输出变量与正确的词连接起来。
String input = editText.getText().toString().split(" ");
Map<String, String> pairs = new HashMap<>();
pairs.put("is", "was");
pairs.put("shall", "should");
pairs.put("this", "that");
pairs.put("can", "could");
pairs.put("will", "would");
String output = "";
for (String word : input) {
if (pairs.containsKey(word)) {
output = output + pairs.get(word) + " ";
} else {
output = output + word + " ";
}
}
mTextView.setText(output.trim());