我正在创建一个返回数组值的方法。但是,我有一个问题。
假设数组值为:771 11 141 1 11 79 7
arr [0] = 771,arr [1] = 11,arr [2] = 141,... arr [n]
然后,这是我的方法:
public static String split_in_string(int [] an){
int ans;
String ansl = "";
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl = Integer.toString(ans);
return ansl;
}
return ansl;
}
如果我在main方法中使用以下部分:
int ans;
String ansl = "";
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl = Integer.toString(ans);
System.out.println(ansl+" ");
}
效果很好。
但是,如果我使用split_in_string()方法,它只显示第一个数组值。
我预计会771 11 141 1 11 79 7
为结果,但我只获得771
我的split_in_string()方法有什么问题?我该如何解决?
答案 0 :(得分:2)
将您的方法更改为:
public static String split_in_string(int [] an){
int ans;
String ansl = "";
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl = Integer.toString(ans);
// return ansl; //commented out this line
Sysytem.out.println(ansl+" "); //added tjis line
}
return ansl;
}
答案 1 :(得分:2)
试试这个:
public static String split_in_string(int [] an){
int ans;
String ansl = "";
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl += Integer.toString(ans);
//return ans1; //commented this line
}
return ansl;
}
答案 2 :(得分:2)
使用ansl += Integer.toString(ans);
。您必须将值附加到相同的字符串对象。
试试这样:
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl += Integer.toString(ans);
}
答案 3 :(得分:2)
问题是你的第一个回复陈述
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl = Integer.toString(ans);
return ansl; // <- This return doesn't allow to continue the loop foor!
}
return ansl;
但是,您可以根据需要执行此操作:
String str = Arrays.toString(array);
答案 4 :(得分:1)
use split_in_string
中有两个return语句,因此你将从循环的第一次迭代中返回。
要返回所有已转换的字符串,请创建一个List<String>
,将转换后的字符串添加到其中,然后返回。
List<String> split_in_string(int [] an){
List<String> ansl = new ArrayList<String>();
for(int i = 0; i < an.length; i++){
ansl.add( Integer.toString(an[i]) );
}
return ansl;
}
或者,全部为一个字符串:
String split_in_string(int [] an){
Stringbuilder ansl = new StringBuilder();
String del = "";
for(int i = 0; i < an.length; i++){
ansl.append( del ).append( Integer.toString(an[i]) );
del = " ";
}
return ansl.toString();
}
答案 5 :(得分:1)
以下也为您提供了所需内容 -
String str = Arrays.toString(array).replaceAll(",|\\]|\\[", "");
e.g。
int[] array = {771, 11, 141, 1, 11, 79, 7};
String str = Arrays.toString(array).replaceAll(",|\\]|\\[", "");
System.out.println(str);
显示 -
771 11 141 1 11 79 7
答案 6 :(得分:-1)
最好不要使用该方法。如果您有一个可行的方法,那么坚持使用该方法要比使用其他对您而言不可行的方法更好。我认为使用此方法更快,更省时间:
int ans;
String ansl = "";
for(int i = 0; i < an.length; i++){
ans = an[i];
ansl = Integer.toString(ans);
System.out.println(ansl+" ");
}
这是您已经拥有的,所以最好使用此方法。