我正在开发一个应用,我必须将整数值分配给不同的字符串。例如,我想分配:
John = 2
Good = 3
Person= 7
现在这些John,Good和person是字符串,而2,3和7是int值。但我对如何实现它感到困惑。我读了很多关于如何将int转换为string和string转换为int的内容,但这是不同的情况。
我可以选择用户在editText中输入文本,例如,如果用户输入" Hello John,你是一个好人"然后这个行输出将是12,因为输入文本中的所有三个单词John,Good和person都在那里。你能告诉我如何实现这个目标吗? 我被困在这里是我的小代码:
String s = "John";
int s_value= 2;
现在我想将此2分配给John,以便每当用户提供输入并且它包含John时,则显示John的值2。请帮助,因为我只是一个初级程序员
这是我的代码(编辑)
String input = "John good person Man";
Map<String, Integer> map = new HashMap<>();
map.put("John", 2);
map.put("Good", 3);
map.put("Person", 7);
//int number = map.get("Good");
String[] words = input.split(" ");
ArrayList<String> wordsList = new ArrayList<String>();
for(String word : words)
{
wordsList.add(word);
}
for (int ii = 0; ii < wordsList.size(); ii++) {
// get the item as string
for (int j = 0; j < stopwords.length; j++) {
if (wordsList.contains(stopwords[j])) {
wordsList.remove(stopwords[j]);//remove it
}
}
}
for (String str : wordsList) {
Log.e("msg", str + " ");
}
正如你所看到我应用你的代码然后我想分割我的主字符串,以便该字符串的每个单词与Map&lt;&gt;中的字符串进行比较。现在我很困惑在for循环中写什么(&#39;停用词&#39;将被什么东西取代?)
答案 0 :(得分:3)
您可以使用Map<String, Integer>
将字词映射到数字:
Map<String, Integer> map = new HashMap<>();
map.put("John", 2);
map.put("Good", 3);
map.put("Person", 7);
然后查询给出一个单词的数字:
int number = map.get("John"); // will return 2
<强>更新强>
以下代码迭代单词集合,并将单词匹配的值相加:
List<String> words = getWords();
int total = 0;
for (String word : words) {
Integer value = map.get(word);
if (value != null) {
total += value;
}
}
return total;
答案 1 :(得分:0)
您可以使用String contains来实现此目的。以下是代码:
String input = "John you are a good person";
String s1 = "John";
String s2 = "good";
String s3 = "person";
int totScore =0;
if(input.contains(s1)) {
totScore=totScore+2;
}
else if (input.contains(s2)) {
totScore=totScore+3;
}
else if (input.contains(s3)) {
totScore=totScore+7;
}
System.out.print(totScore);
答案 2 :(得分:0)
我会为此使用字典。您可以为该字符串添加字符串和int(或其他任何实际值)。
Error saving your changes: Description contains unicode characters above 0xffff
答案 3 :(得分:0)
您可以使用类似的课程。
class Word{
String wordName;
int value;
public Word(String wordName, int value){
this.wordName = wordName;
this.value = value;
}
// getter
public String getWordName(){
return this.wordName;
}
public int getValue(){
return this.value;
}
// setter
public void setWordName(String wordName){
this.wordName = wordName;
}
public void zetValue(int value){
this.value = value;
}
}
您可以创建单词
的对象Word person = new Word("Person",3);