2012-02-02 121 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