我需要编写一个java程序,它有一个数组返回方法,它将一个二维chars数组作为参数,并返回一个单维的字符串数组。 这就是我所拥有的
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;
}
}
答案 0 :(得分:2)
你需要一个String数组,而不是chars:
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;
}
答案 1 :(得分:1)
以上答案是正确的;但是您可能希望使用StringBuilder类来构建字符串,而不是使用“+ =”来连接char数组中的每个char。
使用“+ =”是低效的,因为字符串在java中是不可变类型的,因此每次附加一个字符时,都必须创建一个字符串的新副本,并在末尾附加一个字符。如果要附加一长串char,这将变得非常低效。
答案 2 :(得分: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;
}