- ベストアンサー
Javaでカンマ区切りの配列を分ける方法とtxtファイルからの入力方法
- Javaでカンマ区切りのデータを2次元配列に格納する方法と、txtファイルからの入力方法について説明します。
- 現在のプログラムでは、最初に1000個の要素を持つ配列を用意していますが、効率的ではないため、入力されたデータの数だけ配列を作ることができる方法を探しています。
- 以下のプログラムは、txtファイルからデータを読み込んで配列に格納するメソッドです。戻り値を返した後でも前でも構いません。
- みんなの回答 (3)
- 専門家の回答
質問者が選んだベストアンサー
/** * ファイル名: Arrays2D.java */ import java.io.*; import java.util.*; public class Arrays2D { public static void main(String[] args) { String [][] str2D = new Arrays2D().datain(); for( int i=0; i<str2D.length; i++ ){ for( int j=0; j<str2D[i].length; j++ ){ System.out.printf( "[%d,%d]=%s ", i, j, str2D[i][j] ); } System.out.println(); } } public String [][] datain(){ String inputFileName = "a.txt"; List<String> lineStr = new ArrayList<String>(); try { Scanner sc = new Scanner( new File( inputFileName ) ); while( sc.hasNext() ){ lineStr.add( sc.next() ); } sc.close(); } catch ( Exception e ) { e.printStackTrace(); } String [] lineWork = lineStr.toArray( new String[0] ); String [][] data = new String[lineWork.length][]; for( int i=0; i<lineWork.length; i++ ){ data[i] = lineWork[i].split( "," ); } return data; } }
その他の回答 (2)
- koko_u_u
- ベストアンサー率18% (216/1139)
文字列を , で分割したいんですね? JDK のマニュアルを見ると java.lang.String には split() というメソッドがあることがわかります。これで String の配列に分解できまし た。 ファイルは何行のデータかわからないし、1行を , で分割した時にいくつの文字列に分解 されるかも予測できません。 なので、各行を String[] に分解した後、配列に格納するのではなく、 ArrayList<String[]> などに格納することを検討しましょう。
お礼
お礼が大変遅くなってすみません。 大変参考にさせていただきました。ありがとうございます。
- mintia007
- ベストアンサー率59% (16/27)
String inputFileName = "a.txt"; を String inputFileName = "D:\\a.txt"; に修正してください。失礼しました。
お礼
お礼が遅くなりましたが大変参考にさせていただきました。 本当にありがとうございました。