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

问题描述:

所以我试图将字符串数组的索引与预定值进行比较,以便它可以返回基于排名的卡的类型。我知道下面的方法是比较实际的字符串和数字,我只是不知道如何比较实际的索引值和数字。尝试将字符串数组的索引值与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我希望程序返回“三”。 –

所以我想字符串数组的索引与预定值,以便它可以返回卡的类型,它会根据等级

我如果你只是想检查一个给定的索引是否能给你一张有效的卡片。如果是,请返回卡的名称(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

我将卡片设置为一个班级,这只是一个更大的项目的一部分。 –

当比较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"; 

} 

试试这个,

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