我开始学习使用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提供的解决方案非常相似。

最佳答案

Java假定您要对char进行整数加法,然后附加字符串。

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

return "" + last + first + middle;


要么

return new String(last + first + middle);

10-06 05:32