2016-11-16 158 views
0

我有一个接受字符串的方法。如何在特定索引中以Java分割字符串?

  • 如果它有三个字符,然后我在零和第一个元素之间放一个:
    实施例: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

+0

这是行不通的'子串(0 ,0)'javadocs状态* endIndex - 结束索引,独占* –

+0

我试过子字符串(0),并没有工作 – TheQ

+0

尝试'substring(0,1)' –

回答

4

你就近了。您需要调整indicies为子电话:

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; 
} 
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文件引用:

返回一个字符串,它是此字符串的一个子。子字符串 从指定的beginIndex开始,并扩展到 index endIndex - 1的字符。因此子字符串的长度为 endIndex-beginIndex。实例:

“汉堡包” .substring(4,8)返回 “冲动”, “微笑” .substring(1,5) 返回 “一英里”