连接字符串数组+分隔符
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语句将其删除