java获取方法中数组的所有值

时间:2014-04-18 19:07:07

标签: java arrays methods

我正在创建一个返回数组值的方法。但是,我有一个问题。

假设数组值为: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()方法有什么问题?我该如何解决?

7 个答案:

答案 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+" ");
}

这是您已经拥有的,所以最好使用此方法。