Codingbat FrontBack练习怪异的结果

时间:2014-07-15 11:12:36

标签: java

我开始学习使用Java。

我遇到了codingbat(http://codingbat.com/prob/p123384)的问题: 这是我的代码

public String frontBack(String str) { 
 if (str.length() > 1)
  {
   char first = str.charAt(0);
   char last = str.charAt(str.length()-1);
   String middle = str.substring(1,(str.length()-1));
   return last + first + middle;
  } 
 else 
   return str; 
 } 

这是输出:

(我无法将图像设为新用户)

                         Expected:       Run:       
 frontBack("code") →      "eodc"        "200od"      X      
 frontBack("a") →         "a"           "a"          OK     
 frontBack("ab") →        "ba"          "195"        X      
 frontBack("abc") →       "cba"         "196b"       X      
 frontBack("") →          ""            ""           OK     
 frontBack("Chocolate") → "ehocolatC"   "168hocolat" X    
 frontBack("aavJ") →      "Java"        "171av"      X      
 frontBack("hello") →     "oellh"       "215ell"     X     

为什么我会得到所有这些花哨的数字?我的解决方案与codingbat ...

提供的解决方案非常相似

1 个答案:

答案 0 :(得分:0)

Java假设您要在char上添加整数,然后附加您的字符串。

要强制进行字符串连接,可以使用StringBuilder,或类似:

return "" + last + first + middle;

return new String(last + first + middle);