【问题标题】:How to convert Strings to 2d char Array如何将字符串转换为二维字符数组
【发布时间】:2014-03-15 02:50:25
【问题描述】:

我有一个这样的文本文件

A B C D E F
AABG EF 123
AD AD POLFE
APF PLF ADS

我正在尝试将包括空格在内的每个字符放入二维数组中;

我试过了

data = new ASCIIDataFile();
int rowLen =0;
String s = "";
while(data.isEOF()!=true){
    iArray[rowLen] = data.readLine().toCharArray();
    rowLen++;
    }

但这会给我一个空指针。如何将它们放入二维字符数组中?

【问题讨论】:

  • 你的 iArray 声明是什么样的?
  • 你能把堆栈跟踪放在帖子上吗?
  • 您的 iArray 是否已声明?您的 iArray 实例化是否具有足够的容量?例如,char[] iArray = new char[LINE_COUNT][] 其中LINE_COUNT 表示文件中的行数。
  • 缺乏足够的信息来诊断问题。

标签: java arrays chars


【解决方案1】:

这如你所愿。它将您的输出拆分为一个字符串数组,然后为每个数组创建一个新的字符数组。

   import  java.util.Arrays;
/**
   <P>{@code java SplitStringsTo2DCharArray}</P>
 **/
public class SplitStringsTo2DCharArray  {
   private static final String LINE_SEP = System.getProperty("line.separator", "\r\n");
   public static final void main(String[] ignored)  {
      StringBuilder input = new StringBuilder().
         append("A B C D E F").append(LINE_SEP).
         append("AABG EF 123").append(LINE_SEP).
         append("AD AD POLFE").append(LINE_SEP).
         append("APF PLF ADS").append(LINE_SEP);

      String[] lines = input.toString().split(LINE_SEP);

      //Assumes all lines are the same length
      char[][] charCharArray = new char[lines.length][lines[0].length()];

      for(int i = 0; i < lines.length; i++)  {
         String line = lines[i];
         charCharArray[i] = line.toCharArray();
      }

      for(int i = 0; i < charCharArray.length; i++)  {
         System.out.println(i + ": " + Arrays.toString(charCharArray[i]));
      }
   }
}

输出:

[C:\java_code\]java SplitStringsTo2DCharArray
0: [A,  , B,  , C,  , D,  , E,  , F]
1: [A, A, B, G,  , E, F,  , 1, 2, 3]
2: [A, D,  , A, D,  , P, O, L, F, E]
3: [A, P, F,  , P, L, F,  , A, D, S]

【讨论】:

  • 哦。好吧,我没有按照规定从文本文件中读取输入,所以他还有工作要做:)
【解决方案2】:
    Try This demo:

   import java.io.*;
   import java.util.*;
    class d
    {
    public static void main(String args[])
   {
        try
            {
         FileReader fr = new FileReader("String.txt");
         BufferedReader br = new BufferedReader(fr);
         String s="";
         char [] r2;
         int i=0,j=0;
         char [][]c=new char[5][12];
         while((s = br.readLine()) != null) 
         {
         r2=s.toCharArray();

         for(j=0;j<r2.length;j++)
         {
          c[i][j]=r2[j];
          System.out.print(""+c[i][j]);
          System.out.print(",");
        }
        i++;
        System.out.print("\n");
            }
        }
       catch(Exception e)
        {
         e.printStackTrace();
         }
       }
    }

【讨论】:

    【解决方案3】:

    文件中的字符数组。

     File path = new File("c:/Bala/");//give ur path
          File file = new File(path, "Bala.txt");//give ur filename
          FileReader fr = new FileReader(file);
          char cbuf[] = new char[(int) file.length()];
          fr.read(cbuf);
          System.out.println(cbuf);
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 2021-01-28
      • 1970-01-01
      • 1970-01-01
      • 2013-03-28
      • 1970-01-01
      • 2016-02-22
      • 2020-02-22
      • 1970-01-01
      相关资源
      最近更新 更多