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展示了什么是尝试过的,什么是失败的,那么在这个网站上做作业是合适的。