Java 查找特定字符串出现的ArrayList位置

Java 查找特定字符串出现的ArrayList位置,java,Java,很抱歉问了这个很基本的问题,但我被卡住了。。 假设我们有一个数组 {user , client , client ,user, client , user , client , client , client} 我如何创建一个“for”循环(任何其他想法都值得赞赏…),该循环返回两个变量,关于“client”字符串连续出现的位置;我的意思是(x=1,y=2),(x=4,y=4),(x=6,y=8)提前谢谢 1.:使用计数器迭代数组 2.:查找字符串的位置 3.:从方法返回两个值 遵循分而治之的

很抱歉问了这个很基本的问题,但我被卡住了。。 假设我们有一个数组

{user , client , client ,user, client , user , client , client , client}

我如何创建一个“for”循环(任何其他想法都值得赞赏…),该循环返回两个变量,关于“client”字符串连续出现的位置;我的意思是(x=1,y=2),(x=4,y=4),(x=6,y=8)提前谢谢

1.:使用计数器迭代数组 2.:查找字符串的位置 3.:从方法返回两个值


遵循分而治之的方法(一次解决一个问题)应该可以帮助您

您的问题是找到索引对(开始和结束),这些索引对子数组只包含“客户机”值。所以在这样的子数组中,它们将不是其他值。我们可以从你的测试数据中扣除

试验方法:

  @Test
  public void test() {
    String[] input = new String[] { "user", "client", "client", "user", "client", "user", "client", "client",
        "client" };
    for (Integer[] i : doFun(input, "client")) {
      System.out.println("(" + i[0] + "," + i[1] + ")");
    }

  }
职能机构:

  public List<Integer[]> doFun(String[] input, String wantedValue) {
    List<Integer[]> output = new ArrayList<Integer[]>();
    int beginIndex = -1;
    int length = 0;
    for (int i = 0; i < input.length; i++) {
      if (!wantedValue.equals(input[i])) {
        if (beginIndex > -1) {
          output.add(new Integer[] { beginIndex, beginIndex + length });
        }
        beginIndex = -1;
        continue;
      }
      if (beginIndex < 0) {
        beginIndex = i;
        length = 0;
      } else {
        length++;
      }
    }

    if (beginIndex > -1) {
      output.add(new Integer[] { beginIndex, beginIndex + length });
    }

    return output;
  }
公共列表doFun(字符串[]输入,字符串wantedValue){
列表输出=新的ArrayList();
int beginIndex=-1;
整数长度=0;
for(int i=0;i-1){
add(新整数[]{beginIndex,beginIndex+length});
}
beginIndex=-1;
持续
}
如果(beginIndex<0){
beginIndex=i;
长度=0;
}否则{
长度++;
}
}
如果(beginIndex>-1){
add(新整数[]{beginIndex,beginIndex+length});
}
返回输出;
}

什么是
x
什么是
y
?因此,对于仅从例如“客户端”创建的任何子阵列,您希望找到此类子阵列的开始和结束索引?一些提示:查看
forEach循环的语法。查看
String.equals()
。不能返回2个值,但可以返回具有2个属性的对象。引用到的变量positions@AliAmiri事实上,我很少需要做这样的事情来获得乐趣:)如果OP展示了什么是尝试过的,什么是失败的,那么在这个网站上做作业是合适的。