我如何使用字符串方法打印它

时间:2014-08-30 15:37:20

标签: java string

给定String,在索引0,1,4,5,8,9 ... {"小猫&#返回String s char 34;收益" kien"。

class FirstLastStr {
    public String altPairs(String str) {
        return str.substring(0, 2) 
                + str.substring(4, 6) 
                + str.substring(8, 10); //This part will throw string out of bound
    }
}

4 个答案:

答案 0 :(得分:0)

您似乎尝试从包含7个字符的字符串返回字符8和9。您只需在尝试操作之前检查字符串长度

StringBuilder sb = new StringBuilder();

if (str.size() > 2) {
    sb.append(str.substring(0,2));
}

if (str.size() > 6) {
    sb.append(str.substring(4,6));
}

if (str.size() > 10) {
    sb.append(str.substring(8,10));
}

return sb.toString();

不是最有效的代码,但这将与您的具体情况有关。

答案 1 :(得分:0)

试试这个:

class FirstLastStr 
{
    public String altPairs(String str) 
    {
        char[] arr = {str.charAt(0), str.charAt(1),str.charAt(4), str.charAt(5), str.charAt(8), str.charAt(9)};

        return new String(arr) ;
    }
}

答案 2 :(得分:0)

如果你想要的是一个在字符串中获得两个字符然后再跳过2个字符并将输出作为字符串返回的函数,你需要这个:

public class FirstLastStr {
    public String altPairs(String str) 
    {
        StringBuilder result = new StringBuilder();

        for (int current_char = 0; current_char + 2 <= str.length(); current_char += 4) {
            result.append(str.substring(current_char, current_char + 2));
        }

        return result.toString();
    }
}

这将返回任意长度的字符串的正确输出。

示例输出:

'kittens' -> 'kien'
'cat' -> 'ca'
'at' -> 'at'
'a' -> ''
'' -> ''
'01234567890123456789' -> '0145892367'

答案 3 :(得分:0)

感谢您的所有答案。 因为我正在尝试,我得到了我的问题的答案。 抱歉上传迟到但有很多其他方法可以做到。 这是我的答案。

String res = "";
    public String altPairs(String str) {
        int i=0;
        while (i<str.length()) {
            res +=str.charAt(i);
            i=i+1;
            if(i<str.length()) {
                res+=str.charAt(i);
                i=i+3;
            }
        }
        return res;
    }