如何在特定索引处拆分Java中的字符串?

时间:2016-11-16 05:00:35

标签: java string split

我有一个接收字符串的方法。

  • 如果它有三个字符,那么我会在第0个元素和第一个元素之间添加:。例如:1231:23

  • 如果它有四个字符,那么我会在第一个和第二个元素之间添加一个:。例如:123412:34

出于某种原因,我不断得到奇怪的结果。

这是我的方法:

private String addColon(String openOrclose)
{
    String newHour = null;
    if(openOrclose.length() == 3)
    {
        newHour = openOrclose.substring(0,0) + ":" + openOrclose.substring(1,2);

    }
    else
    {
        newHour = openOrclose.substring(0,1) + ":" + openOrclose.substring(2,3);
    }
    return newHour;
}

对于三个字符,我的结果为:2,对于四个字符,我的结果为1:3

3 个答案:

答案 0 :(得分:4)

你很亲密。您需要调整子字符串调用的指示:

private String addColon(String openOrclose)
{
    String newHour = null;
    if(openOrclose.length() == 3)
    {
        newHour = openOrclose.substring(0,1) + ":" + openOrclose.substring(1,3);

    }
    else
    {
        newHour = openOrclose.substring(0,2) + ":" + openOrclose.substring(2,4);
    }
    return newHour;
}

答案 1 :(得分:0)

您的问题似乎与此问题Insert a character in a string at a certain position

非常相关

注意:我会根据你的问题对此进行评论,但我有49点声望,还需要另外一点。

答案 2 :(得分:0)

问题是您传入substring()的索引:

private String addColon(String openOrclose)
    {
        String newHour = null;
        if(openOrclose.length() == 3)
        {
            newHour = openOrclose.substring(0,1) + ":" + openOrclose.substring(1,openOrclose.length());

        }
        else if(openOrclose.length() == 4)
        {
            newHour = openOrclose.substring(0,2) + ":" + openOrclose.substring(2,openOrclose.length());
        }
        return newHour;
    }

引自Java Doc:

  

返回一个字符串,该字符串是此字符串的子字符串。子串   从指定的beginIndex开始并延伸到at处的字符   index endIndex - 1.因此子字符串的长度是   endIndex的-的beginIndex。例子:

     

" hamburger" .substring(4,8)返回"敦促" "微笑" .substring(1,5)   返回"里程"