Java двумерный массив символов - PullRequest
1 голос
/ 02 февраля 2012

Мне нужно написать 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;
    }
}

Ответы [ 3 ]

2 голосов
/ 02 февраля 2012

Вам нужен массив строк, а не символов:

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 голос
/ 02 февраля 2012

Ответы выше верны; однако вы можете использовать класс StringBuilder для построения строки, а не использовать "+ =" для объединения каждого символа в массиве символов.

Использование "+ =" неэффективно, потому что строки являются неизменяемым типом в Java, поэтому каждый раз, когда вы добавляете символ, он должен будет создать новую копию строки с одним символом, добавленным в конец. Это становится очень неэффективным, если вы добавляете длинный массив char.

0 голосов
/ 02 февраля 2012
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;
}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...