簡體   English   中英

給定一個字符串數組,如何找出特定字符串的索引?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM