2017-03-01 83 views
1

所以我試圖將字符串數組的索引與預定值進行比較,以便它可以返回基於排名的卡的類型。我知道下面的方法是比較實際的字符串和數字,我只是不知道如何比較實際的索引值和數字。嘗試將字符串數組的索引值與int值進行比較

public String findFaceValue() 
{ 
    String faceValueArray[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" 
           , "Ten", "Jack", "Queen", "King"}; 
    for(int i = 0; i < faceValueArray.length; ++i) 
    { 
     if (faceValueArray[i] == rank) 
      return faceValueArray[i]; 
    } 
    return "Not a valid card"; 

} 
+1

什麼是「等級」? – shmosel

+0

@Meme Lord你是什麼意思,通過比較卡的索引值。你的意思是卡的個人價值,例如,Ace是排名最高的? – user3437460

+0

好吧,所以'rank'只是1和13之間的任何數字,所以例如如果它是3我希望程序返回「三」。 –

回答

1

所以我想字符串數組的索引與預定值,以便它可以返回卡的類型,它會根據等級

我如果你只是想檢查一個給定的索引是否能給你一張有效的卡片。如果是,請返回卡的名稱(Rank),否則返回「不是有效的卡」。這是你可以做什麼:

public String findFaceValue(int index) 
{ 
    String faceValueArray[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", 
           "Eight", "Nine", "Ten", "Jack", "Queen", "King"}; 

    if (index < 0 || index >= faceValueArray.length) 
     return "Not a valid card"; 
    return faceValueArray[index]; 
} 

好了,排名僅僅是任意的,例如1到13之間的數字,如果是3我希望程序返回「三公」。

爲了抵消指數,只是將其更改爲:

if (index < 1 || index > faceValueArray.length) 
    return "Not a valid card"; 
return faceValueArray[index-1]; 
+0

這就是它,但我想到了我自己。不管怎麼說,還是要謝謝你! –

+0

@MemeLord無論如何,我會建議你爲'Card'設置一個類,然後在'Card'類中寫入屬性。 – user3437460

+0

我將卡片設置爲一個班級,這只是一個更大的項目的一部分。 –

0

當比較Java中的字符串時,您需要使用str1.equals(str2)。在你的情況(假設rankString

public String findFaceValue(String rank) 
{ 
    String faceValueArray[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" 
           , "Ten", "Jack", "Queen", "King"}; 
    for(int i = 0; i < faceValueArray.length; ++i) 
    { 
     if (faceValueArray[i].equals(rank)) 
      return faceValueArray[i]; 
    } 
    return "Not a valid card"; 

} 

如果你想要回卡的數值(ACE = 0,兩= 1,...,傑克= 9,等等),你可以這樣做:

public String findFaceValue(int rank) 
{ 
    String faceValueArray[] = {"Ace", "Two", "Three", "Four", "Five", "Six", "Seven", "Eight", "Nine" 
           , "Ten", "Jack", "Queen", "King"}; 
    if(rank < faceValueArray.length && rank >= 0) 
     return faceValueArray[rank]; 

    return "Not a valid card"; 

} 
0

試試這個,

String Name = // insert code here 
int index = -1; 
for (int i=0;i<arrayName.length;i++) { 
if (arrayName[i].equals(Name)) { 
    index = i; 
    break; 
} 
} 

另外,還可以用比較來比較(它比較兩個字符串,它返回一個號碼),

String str1 = "String method tutorial"; 
    String str2 = "compareTo method example"; 

    int var1 = str1.compareTo(str2); 
    System.out.println("str1 & str2 comparison: "+var1); 
相關問題