2014-04-18 81 views
-2

我正在創建一個返回數組值的方法。但是,我有一個問題。java在方法中獲取數組的所有值

假設數組的值是: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是錯誤的()方法?我該如何解決它?

+1

在split_in_string: ansl = Inte蒙古包。的toString(ANS); 應替換爲: ansl + = Integer.toString(ans); – slaadvak

回答

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

由於它僅僅改變了錯誤,從僅返回第一個值「771」到僅返回最後一個值「7」而被降低。 – laune

+0

我修改了我的答案,謝謝更正 – Ziker

+0

有些值轉爲標準輸出,一個值返回...?恐怕你的改正讓事情變得更糟。 – laune

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

使用ansl += Integer.toString(ans);。您必須將值附加到同一個字符串對象。

試試這樣說:

for(int i = 0; i < an.length; i++){ 
    ans = an[i]; 
    ansl += Integer.toString(ans); 
} 
1

你有use split_in_string兩個返回語句,所以你就可以在循環的第一次迭代返回。

要返回所有轉換的字符串,創建一個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(); 
} 
+0

如果您想要將它全部放入一個字符串中,請使用字符串生成器並將其附加到該字符串中。 – laune

1

也是繼給你你想要的東西 -

String str = Arrays.toString(array).replaceAll(",|\\]|\\[", ""); 

例如

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 
2

這是你的第一個return語句

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); 
相關問題