连接字符串数组+分隔符

java noob here …

这让我疯了,因为我知道这很简单,但我已经在这30分钟了…

这来自于codefights:

对于arguments = [“Code”,“Fight”,“On”,“!”]和separator =“/”,输出应该是myConcat(arguments,separator)=“Code / Fight / On /!/”。

我的代码:

String myConcat(String[] arguments, String separator) { for(int i = 0; i <= arguments.length; i++){ String output = arguments[0] + separator; } return output; } 

错误:第5行的file.java:错误:找不到符号返回输出; ^符号:变量输出位置:类_runfniek 1错误

任何提示将非常感谢…

首先,StringBuilder优先于+操作。

其次,在循环体中定义String输出是错误的,它实际上不保存该值。

第三,需要考虑边界,即不应为参数数组的最后一个元素追加分隔符。

第四,它是i < arguments.length ,而不是i <= arguments.length

 String myConcat(String[] arguments, String separator) { StringBuilder output = new StringBuilder(); for(int i = 0; i < arguments.length; i++){ output.append(arguments[i]); if(i < arguments.length-1){ output.append(separator); } return output.toString(); } 
 String output = arguments[0] + separator; 

arguments [0] – > arguments [i]和String输出var必须在for {}中定义

错误提示非常明显。

问题是String output只存在于for语句中,需要在它之外创建,理想情况下使用stringbuilder:

  String myConcat(String[] arguments, String separator){ StringBuilder output = new StringBuilder(); for(int i = 0; i < arguments.length; i++){ output.append(arguments[i]); output.append(separator); } return output.toString(); } 

您似乎想要尾随分隔符,如果不需要,您可以使用if语句将其删除