Java 获取单词/字符串数组的含义
这是我的问题的继续,从这个线索:Java 获取单词/字符串数组的含义,java,android,Java,Android,这是我的问题的继续,从这个线索: String[]words={“牛仔”、“动物”、“怪物”}; 字符串[]含义={“含义1”、“含义2”、“含义3”}; 布尔检查=假; for(int i=0;i
String[]words={“牛仔”、“动物”、“怪物”};
字符串[]含义={“含义1”、“含义2”、“含义3”};
布尔检查=假;
for(int i=0;i
但我似乎不知道如何以及在何处将用户在编辑文本中键入的每个单词的特定含义放在哪里。任何帮助都将不胜感激。谢谢。那样的东西怎么样
int index;
...
if (s.toLowerCase().contains(words[i].toLowerCase())) {
check = true;
index = i;
} else {
....
if (check) {
System.out.println(meanings[index]);
} else {
...
像那样的怎么样
int index;
...
if (s.toLowerCase().contains(words[i].toLowerCase())) {
check = true;
index = i;
} else {
....
if (check) {
System.out.println(meanings[index]);
} else {
...
如果
单词
及其含义
在两个数组中具有相同的相对位置,则再次使用索引i
打印相应的含义。但是,i
现在必须在循环外部定义,以便它现在具有更大的范围,并且在if
检查中可用
int i = 0
for (; i < words.length; i++) {
if (s.toLowerCase().contains(words[i].toLowerCase())) {
check = true;
break;
}
}
if (check) {
System.out.println("Meaning found: " + meanings[i]);
}
inti=0
for(;i
如果单词及其含义在两个数组中具有相同的相对位置,则再次使用索引i
打印相应的含义。但是,i
现在必须在循环外部定义,以便它现在具有更大的范围,并且在if
检查中可用
int i = 0
for (; i < words.length; i++) {
if (s.toLowerCase().contains(words[i].toLowerCase())) {
check = true;
break;
}
}
if (check) {
System.out.println("Meaning found: " + meanings[i]);
}
inti=0
for(;i
由于单词和意义数组具有相对索引,因此您可以-
boolean check = false;
for (int i = 0; i < words.length; i++) {
if (s.equalsIgnoreCase(words[i])) { // We don't need "toLowerCase"
System.out.println("Word: " + words[i] + "\tMeaning: " + meanings[i]);
check = true;
break; // Match found; so get out of the loop
}
}
if(check){
System.out.println("Found!");
} else {
System.out.println("Not Found!");
}
布尔检查=false;
for(int i=0;i
由于单词和意义数组具有相对索引,因此您可以-
boolean check = false;
for (int i = 0; i < words.length; i++) {
if (s.equalsIgnoreCase(words[i])) { // We don't need "toLowerCase"
System.out.println("Word: " + words[i] + "\tMeaning: " + meanings[i]);
check = true;
break; // Match found; so get out of the loop
}
}
if(check){
System.out.println("Found!");
} else {
System.out.println("Not Found!");
}
布尔检查=false;
for(int i=0;i
静态字符串[]单词={“牛仔”、“动物”、“怪物”};
静态字符串s=“我的动物是一个牛仔”;
静态布尔检查=false;
静态字符串[]含义={“含义1”、“含义2”、“含义3”};
静态ArrayList typed_words=新ArrayList();
静态ArrayList typed_meansions=新ArrayList();
for(int i=0;istatic String[]words={“牛仔”、“动物”、“怪物”};
静态字符串s=“我的动物是一个牛仔”;
静态布尔检查=false;
静态字符串[]含义={“含义1”、“含义2”、“含义3”};
静态ArrayList typed_words=新ArrayList();
静态ArrayList typed_meansions=新ArrayList();
for(int i=0;i 对于(inti=0;i为什么不使用java.util.HashMap
,其中每个单词都映射到一个意思
String s = "";
HashMap<String,String> meaningMap = new HashMap<String,String>();
//just for the example
meaningMap.put("cowboy", "meaning1");
...
if (s.toLowerCase().contains(words[i].toLowerCase())) {
ouput = meaningMap.get(s);
}
...
System.out.println(s);
String s=”“;
HashMap meaningMap=新HashMap();
//举个例子
意思地图。放(“牛仔”,“意思1”);
...
如果(s.toLowerCase().contains(单词[i].toLowerCase())){
ouput=meaningMap.get(s);
}
...
系统输出打印项次;
为什么不使用java.util.HashMap
,其中每个单词都对应一个意思
String s = "";
HashMap<String,String> meaningMap = new HashMap<String,String>();
//just for the example
meaningMap.put("cowboy", "meaning1");
...
if (s.toLowerCase().contains(words[i].toLowerCase())) {
ouput = meaningMap.get(s);
}
...
System.out.println(s);
String s=”“;
HashMap meaningMap=新HashMap();
//举个例子
意思地图。放(“牛仔”,“意思1”);
...
如果(s.toLowerCase().contains(单词[i].toLowerCase())){
ouput=meaningMap.get(s);
}
...
系统输出打印项次;
另一个想法是使用HashMap存储数据
HashMap hm = new HashMap();
hm.put("cowboy", "meaning1");
hm.put("animal", "meaning2");
然后使用
String s = yourEdittext.getText();
String[] words = s.split("\s+");
for (int i = 0; i < words.length(); i++) {
words[i] = words[i].replaceAll("[^\w]", "");
}
for (int i=0; i < words.length(); i++) {
if (hm.containsKey(words[i])) {
System.out.println("Meaning found: " + hm.get(words[i]));
}
}
String s=yourEdittext.getText();
字符串[]字=s.split(“\s+”);
for(int i=0;i
这基本上是从edittext中获取句子,将其拆分为单词,然后检查每个单词是否在HashMap中。如果您的单词列表与句子长度相比相当大,这是很好的。另一个想法是使用HashMap存储数据
HashMap hm = new HashMap();
hm.put("cowboy", "meaning1");
hm.put("animal", "meaning2");
然后使用
String s = yourEdittext.getText();
String[] words = s.split("\s+");
for (int i = 0; i < words.length(); i++) {
words[i] = words[i].replaceAll("[^\w]", "");
}
for (int i=0; i < words.length(); i++) {
if (hm.containsKey(words[i])) {
System.out.println("Meaning found: " + hm.get(words[i]));
}
}
String s=yourEdittext.getText();
字符串[]字=s.split(“\s+”);
for(int i=0;i
这基本上得到了