java noob here ...
这让我感到疯狂,因为我知道这件事情很简单,但我已经做了30分钟......
这来自于codefights:
对于参数= [" Code"," Fight"," On","!"]和separator =&#34 ; /",输出应该是 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:错误:找不到符号 返回输出; ^ 符号:可变输出 location:class _runfniek 1错误
任何提示都将不胜感激......
答案 0 :(得分:1)
String output = arguments[0] + separator;
参数[0] - &gt;参数[I] 并且必须在for {}
中定义String输出var错误提示非常明显。
答案 1 :(得分: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();
}
答案 2 :(得分:1)
问题是字符串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语句将其删除