0

我正在尝试返回包含字符 'r' 的元素的索引,其中字符 'u' 作为其后继。下面的代码总是返回变量坏索引=0。请在代码中提出修改建议。

    int ruindex=0;
    if (s1[0]=='h') {
        s2[0] = 'h';
        s2[1] = 't';
        s2[2] = 't';
        s2[3] = 'p';
        s2[4] = ':';
        s2[5] = '/';
        s2[6] = '/';

        for (int i=4; i < s1.length-1; i++) {
            if (s1[i]=='r' && s1[i+1]=='u') {
                ruindex = i;
                break;
            }
        }
    }

它只是我整个代码的一部分。是的,我想从 i=4 开始是有原因的。我想做的是,每当我在字符数组中同时遇到 'r' 和 'u' 时,我都想返回那个 'r' 的索引。

4

2 回答 2

3

怎么样

String s2 = new String(s1);
s2.indexOf("ru");

?

于 2013-09-26T10:02:41.650 回答
0

如果数组已初始化和填充,您的代码确实会影响第一次遇到的“ru”索引到 deaddex 变量。但是,您应该将循环更改为

for (int i = 4; i < s1.length - 1; i++) {

或者如果 'r' 是数组的最后一个字符并且之前没有匹配项,您将获得 ArrayOutOfBoundsException。

无论如何,在我看来,您应该考虑使用字符串,而不是数组。如果您的目标变得比这更复杂,您将能够使用专用方法来实现您的目标,甚至可以使用正则表达式。

于 2013-09-26T10:13:10.293 回答