質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

Q&A

1回答

362閲覧

javaに関する質問

Rosetta

総合スコア1

Java

Javaは、1995年にサン・マイクロシステムズが開発したプログラミング言語です。表記法はC言語に似ていますが、既存のプログラミング言語の短所を踏まえていちから設計されており、最初からオブジェクト指向性を備えてデザインされています。セキュリティ面が強力であることや、ネットワーク環境での利用に向いていることが特徴です。Javaで作られたソフトウェアは基本的にいかなるプラットフォームでも作動します。

0グッド

0クリップ

投稿2022/05/12 07:12

以下のjavaのコードではコンソールに入力した半角英数字(10個入力すると改行しEnterを入力した場合は処理を終わらせる)をcsvファイルに出力するという作業を途中までやっているのですが、ArrayListに格納した半角英数字をBufferedWriterのwriteメソッドで出力させる(10個ずつ改行)際にWhileとforを組み合わせて行っているのですがWhileの()内の終了条件をどのように書けばよいのかわかりません。ここを教えていただきたいです。

public class CsvFileWrite {

public static void main(String[] args) { try { ArrayList<String> list = new ArrayList<>(); System.out.println("データ(半角英数字)を入力してください"); while (true) { // 入力部分 Scanner sc = new Scanner(System.in); String str = sc.nextLine(); if (str.equals(""))// enter入力で終了 break; list.add(str); break; } // 以下でFileWriter PrintWriterを開く FileWriter fw = new FileWriter("C:\\work\\sample.csv", true);// ここでメソッドを開くtrueは既存のファイルに追加して処理する BufferedWriter bw = new BufferedWriter(fw); int count = 0; // countを指定することで11番目以降にも対応することができる while () { //終了条件を設定する for (int i = count; i < count + 10; i++) { // 10個ずつ取り出して改行する方法 if (list.get(i).equals(null)) break; bw.write(list.get(i)); count++; //countも同様に回すことでiの11番目以降にも対応することができる } bw.write("\r\n"); } fw.close(); bw.close(); System.out.println("ファイルに出力しました"); } catch (FileNotFoundException e) { System.out.println("ファイルが見つかりません"); } catch (IOException e) { e.printStackTrace(); } catch (NullPointerException e) { e.printStackTrace(); } }

}

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

m.ts10806

2022/05/12 07:20

>javaに関する質問 というのは質問タグでわかるのでタイトルに書かなくて良いです。要件を記載してください。
guest

回答1

0

入力に , や " が混じることを考慮しなくていいのなら:

Java

1import java.util.ArrayList; 2import java.util.Iterator; 3 4public class foo { 5 6 public static void main(String[] args) { 7 ArrayList<String> list = new ArrayList<String>(); 8 9 for ( int i = 0; i < 123; ++i ) { 10 list.add(Integer.toString(i)); 11 } 12 13 // listをCSV形式でcols個ずつプリント 14 int cols = 10; 15 int col = 0; 16 Iterator<String> iter = list.iterator(); 17 while ( iter.hasNext() ) { 18 if ( col != 0 ) System.out.print(","); // 最初の項を除き','をプリント 19 System.out.print(iter.next()); // 各項をプリント 20 col = (col+1)%cols; 21 if ( col == 0 ) System.out.println(); // cols毎に改行 22 } 23 if ( col != 0 ) System.out.println(); // 最後の改行 24 25 } 26}

投稿2022/05/12 07:40

episteme

総合スコア16614

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだベストアンサーが選ばれていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問