2012-02-02 263 views
1

我需要編寫一個java程序,該程序具有一個數組返回方法,該方法將一個二維字符數組作爲參數並返回一個一維字符串數組。 這裏就是我有Java二維字符數組

import java.util.Scanner; 
public class TwoDimArray { 

    public static void main(String[] args) { 
     Scanner s = new Scanner(System.in); 
     System.out.println("Enter the number of Rows?"); 
     int rows = s.nextInt(); 
     System.out.println("Enter the number of Colums?"); 
     int cols = s.nextInt(); 
     int [][] array = new int [rows] [cols]; 
    } 

    public static char[ ] toCharArray(String token) { 
     char[ ] NowString = new char[token.length()]; 
     for (int i = 0; i < token.length(); i++) { 
      NowString[i] = token.charAt(i); 
     } 
     return NowString; 
    } 
} 
+2

而問題是...... – 2012-02-02 07:46:41

+0

而你的問題是什麼? – 2012-02-02 07:47:18

回答

2

你需要一個String數組,而不是字符:

public static String[] ToStringArray(int[][] array) { 
    String[] ret = new String[array.length]; 

    for (int i = 0; i < array.length; i++) { 
     ret[i] = ""; 
     for(int j = 0; j < array[i].length; j++) { 
      ret[i] += array[i][j]; 
     } 

    } 
    return ret; 
} 
0
public String[] twoDArrayToCharArray(char[][] charArray) { 
    String[] str = new String[charArray.length]; 
    for(int i = 0; i < charArray.length; i++){ 
     String temp = ""; 
     for(int j = 0; j < charArray[i].length; j++){ 
      temp += charArray[i][j]; 
     } 
     str[i] = temp; 
    } 
    return str; 
} 
1

以上的答案是正確的;但是你可能想使用StringBuilder類來構建字符串,而不是使用「+ =」來連接字符數組中的每個字符。

使用「+ =」效率不高,因爲字符串在java中是不可變的類型,所以每次添加一個字符時,都必須創建一個字符串的新副本,並在末尾添加一個字符。如果你追加一長串char,這將變得非常低效。

+0

+1你是對的,但我選擇了更簡單的方式,因爲OP的專業水平 – onof 2012-02-02 08:14:29