尝试将字符串数组的索引值与int值进行比较

时间:2017-03-01 22:52:58

标签: java arrays

所以我试图将字符串数组的索引与预定值进行比较,以便它可以返回基于排名的卡片类型。我知道下面的方法是将实际字符串与数字进行比较我只是不知道如何将实际索引值与数字进行比较。

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

}

3 个答案:

答案 0 :(得分:1)

  

所以我试图将字符串数组的索引与预定值进行比较,以便它可以返回基于等级的卡类型

如果您只是想检查某个索引是否可以获得有效的卡片。如果是,请返回卡的名称(等级),否则返回&#34;不是有效的卡&#34;。这就是你能做的:

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我希望程序返回&#34; Three&#34;。

要偏移索引,只需将其更改为:

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

答案 1 :(得分: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,Two = 1,...,Jack = 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";

}

答案 2 :(得分: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;
}
}

此外,您可以与比较比较(它比较2个字符串并返回一个数字),

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

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