我正在使用翻译器应用程序,但遇到了一个小问题。例如:
当我在type
中的Hond
时,我希望output
是Dog
,当我在type
中的Honderd
时,我希望output
是Hundred
。但是当我输入Hond时我得到Dogerd
。因此,它只需要翻译Hond并添加其余字母即可。通过在代码中将Honderd放在Hond之上,我提出了一个解决方案。但是必须对此问题有另一种解决方案吗?这是代码:
protected void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.activity_main);
mType = (EditText) findViewById(R.id.typeWordTxt);
mSearch = (Button) findViewById(R.id.find8tn);
mResults = (TextView) findViewById(R.id.resultsTxt);
mSearch.setOnClickListener(new View.OnClickListener() {
@Override
public void onClick(View v) {
String resultaat = mType.getText().toString().toLowerCase();
resultaat = resultaat
//Getallen
.replaceAll("honderd", "hundred")
.replaceAll("hond", "dog")
mResults.setText(resultaat);
谢谢您的帮助!
最佳答案
您可以使用\\b
单词边界将您的单词隔离为单个单词,而不是将其与其他单词匹配\\bhonderd\\b
和\\bhond\\b
String s ="Honderd Honderd Hond".toLowerCase();
System.out.println(s
.replaceAll("\\bhond\\b", "dog")
.replaceAll("\\bhonderd\\b", "hundred"));
输出:
hundred hundred dog
演示版
const honderd_rep = /\bhonderd\b/g;
const hond_rep = /\bhond\b/g;
const str = 'honderd honderd hond';
const result = str.replace(hond_rep,'dog').replace(honderd_rep, 'hundred');
console.log(result);
关于java - 正确替换所有孤立的字符串,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/42054152/