2016-04-14 61 views
-3

基本上,我創建了一個應用程序,用戶選擇通過,優點或區別爲18個不同的單位(學校基本上)。我的問題是,我不知道如何告訴微調,如果它的字符串是「通過」,該字符串等於整數70(優點= 80和區別= 90)。我正在使用一個字符串數組和適配器爲spinners。我目前正在嘗試使用If語句來做到這一點:在android工作室告訴字符串等於一個int

if (spinner1.toString().equals("Pass")){} 

我只是不知道該怎麼做才能告訴字符串等於一個int。

要重申,我希望傳遞給= 70,優異= 80,區別= 90

任何指導和幫助的,這是大加讚賞。 :)

+0

搜索'HashMap' ... –

+0

您只是在測試 「通行證」。你在哪裏有70,80或90? – Stultuske

+1

你應該再次閱讀關於類型的教程 - 這裏似乎有一個誤解,就是類型系統是如何工作的。我們不能告訴你想要做什麼,但一個字符串不是一個整數。 https://docs.oracle.com/javase/tutorial/java/nutsandbolts/datatypes.html –

回答

1

希望這個有幫助,有點含糊不清...你的意思是,你有幾個字符串< - > int轉換做的?

public YourConstructor() { 
    /*Map<String, Integer>*/ theMap = new HashMap<String, Integer>(); 
    theMap.put("Pass", 10); 
    theMap.put("Merit", 70); 
    theMap.put("distinction ", 90); 
    ... 
} 

public int getNumber(String text) { 
    return theMap.get(text); 

    // I hope this will be, one day, forgotten. This is BAD. 
    //for (String s : theMap.keySet()) 
    // if (text.equals(s)) 
    //  return theMap.get(s); 
    // return 0; // default for "item not found", or throw 
} 

從而final String yourString = ""+getNumber(spinner.getSelectedItem().toString());

轉換::字符串整數位是指:

int integer = Integer.parseInt(text); 

整數字符串

String theString = ""+integer; 
+0

是的,微調器中的字符串必須轉換爲數字,以便textview可以將它們合併。我仍然希望紡紗者繼續顯示字符串,但是轉換爲整數和計數必須在後臺進行。我嘗試了你發佈的內容,但是第一行有一個錯誤,HashMap theMap = new HashMap ();. Android工作室不喜歡,說int不能是原始類型。 –

+0

爲什麼要設置一個'HashMap'然後迭代每個元素? 'map.get(text)'會做(對未知字符串進行'null'檢查)。另外,我認爲你需要'HashMap ',而不是'int'。 – TripeHound

+0

我剛剛使用了原始類型,表示您對int/integer做了三重搜索。 –

0

創建地圖象下面這樣:

Map<String,int> gradeScoreMap=new HashMap<String,int>(); 
gradeScoreMap.put("PASS",70); 
gradeScoreMap.put("MERIT",70); 
gradeScoreMap.put("DISTINCTION",70); 

上面的地圖將包含比分

爲你的成績映射創建地圖吸氣:

public String getgradeScoreMap(String grade) { 
return gradeScoreMap.get(grade); 
} 

上述方法將被用來獲取基於輸入級的成績。

現在用途:

int score=-1; 
if (spinner1.toString().equals("Pass")){ 
score =getgradeScoreMap(spinner1.toString()); 
} 

將比分爲您同等價值的 「通行證」 即70

+1

我認爲你需要'Map 'not'int'。 – TripeHound

+0

謝謝Imran,不幸的是,公共字符串getgradescoreMap(String grade)返回一個錯誤,它無法解析符號 –

+0

請分享您的代碼段和確切的錯誤描述。 –

相關問題