[英]Given an array of Strings, how to find out the index of a particular String?
我有,
String[] directions = {"North", "South", "West", "East"};
不,我有一個String,它是這4個String文字中的任何一個。
如何獲得s的方向索引?
可能的枚舉
public enum Direction {
NORTH("North"), SOUTH("South"), EAST("East"), WEST("West");
private String text;
private Direction(String text) {
this.text = text;
}
public String getText() {
return text;
}
}
public class TestDirection {
public static void main(String[] args) {
System.out.printf("%10s: %-4s%n", "Direction", "Ordinal");
for (Direction dir : Direction.values()) {
System.out.printf("%10s: %-4d%n", dir.getText(), dir.ordinal());
}
}
}
打印出:
Direction: Ordinal
North: 0
South: 1
East: 2
West: 3
但同樣,細節決定成敗。 如該方法的枚舉API所述:
返回此枚舉常量的序數(其在枚舉聲明中的位置,其中初始常量的序數為零)。 大多數程序員都不會使用這種方法。 它設計用於復雜的基於枚舉的數據結構,例如EnumSet和EnumMap。
您也可以使用for循環來實現。
int i, index;
for i = 0; i < directions.lenght()-1; i++{
if(s.equals(directions[i]){
index = i;
break;
}
}
試試這個簡單的代碼片段:
String[] directions = {"North", "South", "West", "East"};
int directionIndex = Arrays.asList(directions).indexOf("West");
這將為您提供數組中任何字符串的索引,如果不存在則返回-1
。
您可以例如使用
java.util.Arrays.asList(directions).indexOf(s)
在這里可以找到一個更通用的問題,並提供了幾個出色的答案。 以上解決方案是此處列出的答案之一。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.