我有一个接收字符串的方法。
如果它有三个字符,那么我会在第0个元素和第一个元素之间添加:
。例如:123
→1:23
如果它有四个字符,那么我会在第一个和第二个元素之间添加一个:
。例如:1234
→12: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 :(得分: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) 返回"里程"