将整数值分配给字符串

Assign Integer Value to String

我正在开发一个应用程序,我必须在其中为不同的单词字符串分配整数值。例如我想分配:

John = 2
Good = 3
Person= 7

现在这些 John、Good 和 person 是字符串,而 2,3 和 7 是 int 值。但是我对如何实现它感到很困惑。我读了很多关于如何将 int 转换为字符串和将字符串转换为 int 的内容,但这是不同的情况。

我正在为用户提供在 editText 中输入文本的选项,例如,如果用户输入 "Hello John you are a good person",则此行输出将为 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<> 中的字符串进行比较。现在我很困惑在for循环中写什么('stopwords'会被什么东西代替?)

您可以使用 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);

您可以使用 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;

我会为此使用词典。您可以为该字符串添加一个字符串和一个 int(或其他任何实际值)值。

 Dictionary<string, int> d = new Dictionary<string, int>();
 d.Add("John", 2); 
 d.Add("Good", 3);
 d.Add("Person", 7);

你可以用class赞。

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);