【问题标题】:Java two-dimensional array of charsJava 二维字符数组
【发布时间】:2012-02-24 21:28:41
【问题描述】:

我需要编写一个 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;
    }
}

【问题讨论】:

    标签: java arrays string methods char


    【解决方案1】:

    你需要一个字符串数组,而不是字符数组:

    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;
    }
    

    【讨论】:

      【解决方案2】:

      以上答案都是对的;但是,您可能希望使用 StringBuilder 类来构建字符串,而不是使用 "+=" 来连接 char 数组中的每个 char。

      使用“+=”是低效的,因为字符串在java中是不可变类型,所以每次你追加一个字符时,它都必须创建一个字符串的新副本,并在末尾追加一个字符。如果您要附加一长串字符,这将变得非常低效。

      【讨论】:

      • +1 你是对的,但鉴于 OP 的专业水平,我选择了更简单的方法
      【解决方案3】:
      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;
      }
      

      【讨论】:

        猜你喜欢
        • 2017-04-16
        • 2017-03-26
        • 2010-12-19
        • 2013-10-10
        • 2019-02-18
        • 1970-01-01
        • 1970-01-01
        • 2017-02-19
        • 2013-11-30
        相关资源
        最近更新 更多