如何在java中的数组中获取某些String值

时间:2018-05-18 11:43:04

标签: java arrays

String [] array=new String[7];

array[0]="a";
array[1]="b";
array[2]="c";
array[3]="d";
array[4]="e";
array[5]="f";
array[6]="g";

for (int i=0;i<array.Length;i++){
  if(array[i].equals("b")) {
        // check array from the first one and when it is "b" starts
        // to print the string value till "e"
        System.out.println(array[i]);
    }
    if (array[i].equals("e"))
        break;
}

我有一个字符串数组,我希望在点击“b”时打印所有字符串值并在“e”处停止

无论如何我能做到吗?

我的预期结果是:

b
c
d
e

5 个答案:

答案 0 :(得分:3)

Java-9解决方案将是:

Arrays.stream(array)
      .dropWhile(e -> !"b".equals(e))
      .takeWhile(e -> !"f".equals(e))
      .forEach(System.out::println);

答案 1 :(得分:3)

List<String> list = Arrays.asList(array);

list.subList(list.indexOf("b"), list.indexOf("e") + 1)
    .forEach(System.out::println);

*假设数组(1)中存在"b""e""e"(2)之后存在"b"

答案 2 :(得分:2)

只需找到开始和结束索引并迭代它 -

List<String> arrList = Arrays.asList(arr);
int indexOfB = arrList.indexOf("b"); 
int indexOfE = arrList.indexOf("e");
for(int i =indexOfB; i<=indexOfE; i++){
    System.out.println(arr[i]);
}

答案 3 :(得分:1)

您可以使用标记来了解第一次出现是否需要打印当前值。

String[] array = {"a", "b", "c", "d", "e", "f", "g"};

boolean toPrint = false;

for (int i = 0; i < array.length; i++) {
    if(array[i].equals("b")) //Find `b`, flag fo printing
        toPrint = true;

    if(toPrint) 
        System.out.println(array[i]);

    if (array[i].equals("e")) //Find `e`, break the loop
        break;
}

这将在开始时将布尔值设置为true,并将打印每个值,直到找到第二个值。然后它会打破循环。

答案 4 :(得分:0)

你可以在一个变量中找到并保存'b'的索引,并在'e'之后找到相同的'e',之后比较if(indexB <= indexE),如果是,则从b打印全部直到e

修改

public static void main(String[] arg) {

    String[] array = new String[]{"a", "b", "c", "d", "e", "f", "g"};

    bigFor: for (int i = 0; i < array.length; i++) {

        if (array[i].equals("b")) {

            for(int x = i; x < array.length; x++) {

                System.out.println(array[x]);

                if(array[x].equals("e")) {

                    break bigFor;

                }   
            }   
        } 
    }
}