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

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

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

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

Q&A

3回答

5316閲覧

JAVAに詳しい方、ご教授下さい。

crotchet878

総合スコア8

Java

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

Eclipse

Eclipseは、IBM社で開発された統合開発環境のひとつです。2001年11月にオープンソース化されました。 たくさんのプラグインがあり自由に機能を追加をすることができるため、開発ツールにおける共通プラットフォームとして位置づけられています。 Eclipse自体は、Javaで実装されています。

0グッド

0クリップ

投稿2016/08/23 10:20

###前提・実現したいこと
こんばんは。Java初心者で勉強中のものです。
わからないので質問させていただきます。

標準入力から入力された文字列をコンマ「,」で区切りファイルに出力したいです。また、繰り返し入力ができ、「end」が入力されたらファイルを出力し、プログラムを終了します。
aaaa,bbbb,ccc,dd
↑こんな感じにしたいのですがエラーになります。

分かる方、ご教授下さい。よろしくお願いします。

###発生している問題・エラーメッセージ
eclipseで実行を行うと、
filewriter.write(String.Join(",", list.toArray(new String[0])));のJoinの部分がエラーになります。(Ver.JavaSE-1.6)

エラーメッセージ
メソッド Join(String, String[]) は型 String で未定義です

###該当のソースコード
package Output_Input_xxxxx;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;

public class xxxxx {

public static void main(String[] args) { // 入力受付 List<String> list = new ArrayList(); Scanner scanner = new Scanner(System.in); while (true) { String s = scanner.nextLine(); if (s.equals("end")) { break; } list.add(s); } scanner.close(); // ファイル書き込み File file = new File("test" + System.currentTimeMillis() + ".txt"); try { FileWriter filewriter = new FileWriter(file); { filewriter.write(String.Join(",", list.toArray(new String[0]))); } } catch (IOException e) { } }

}

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

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

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

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

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

matobaa

2016/08/23 14:14

質問タイトルは内容の要約にしてください。「標準入力から入力された文字列をコンマ「,」で区切りファイルに出力したい」のように。
guest

回答3

0

メソッド名は小文字始まりです。大文字のJoinではだめで、joinとする必要があります。

ちなみにjoinメソッドは、第2引数(以降)はString配列(可変長引数)だけではなく、Stringを扱うIterableを取ることもできます。ArrayListなどのListはIterableを持っているので、わざわざtoArrayで配列化する必要はありません。

投稿2016/08/23 12:43

編集2016/10/31 15:53
swordone

総合スコア20651

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

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

0

String#joinはjdk8から実装されたそうで、古いバージョンでは使用できません。
それほど難しいメソッドではないので自分で実装してはどうでしょう。

java

1static String join(String str, String... strarr){ //可変長引数 2 String rv = ""; 3 for(String sa: strarr){ //拡張for 4 rv += sa + str; 5 } 6 return rv.substring(0, rv.length() - str.length()); //String切り出し 7}

一例です。実行環境が用意できない状態なので間違ってるかもしれません。参考までに。

投稿2016/08/23 10:48

intelf___

総合スコア868

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

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

0

質問者様は一行で書きたいのではないかと思いますが
プログラム自体は以下でできます

import java.io.*;

import java.io.File;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Scanner;
class LL{

public static void main(String[] args){

ArrayList<String> l=new ArrayList<>();

Scanner scanner = new Scanner(System.in);
while (true) {
String s = scanner.nextLine();

if (s.equals("end")) {
break;
}

l.add(s);

}
scanner.close();

File file = new File("test" + System.currentTimeMillis() + ".txt");
try (BufferedWriter fw=new BufferedWriter( new FileWriter(file));) {

for(int t=0;t<l.size();t++){

fw.write(l.get(t));

if(t<l.size()-1){
fw.write(",");}
}

} catch (IOException e) {

}

}
}

投稿2016/10/30 21:21

退会済みユーザー

退会済みユーザー

総合スコア0

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問