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

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

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

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

Q&A

1回答

475閲覧

javaで入力ファイルを編集し、出力する為には?

kirua_2

総合スコア0

Java

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

0グッド

0クリップ

投稿2021/11/09 05:50

前提・実現したいこと

入力ファイルの中身が数字で123456789とあるとします。
それを「入力123456789」⇒出力「あああああああああ」
等には出来ますでしょうか。調べても頭が悪く・・・全く分かりません。
答えのソースが知りたいです。「ヒント等でも構いません。」
そもそも考え方が違っていたりJAVAでは不可能な場合も教えて頂けると幸いです。

発生している問題・エラーメッセージ

キーと価のマッピングが関係しているのかと思っておりますが、、分かりません。

試したこと

import java.util.HashMap;
import java.util.Map;
import java.io.File;
import java.io.FileReader;
import java.io.IOException;
import java.io.BufferedReader;

public class Main {
public static void main(String[] args) {
FileReader reader = null;
try {
File file = new File("file");
BufferedReader br = new BufferedReader(new FileReader(file));
Map<String, String> map = new LinkedHashMap<String, String>();
while ((buffer = br.readLine()) != null) {
//文字列を引数と一致する場所で区切って配列にする
String[] str = buffer.split("1=あ");
map.put(str[9], str[9]); //キーと値をマッピング
}
//キー、値の組を取り出すSetを取り出し、ループ
for(Map.Entry<String, String> e : map.entrySet()){
//Entryが持つキーとそれにマッピングされた値を取り出して表示
System.out.println(e.getKey() + "1:9" + e.getValue());
}
}
br.close();
} catch (IOException e) {
e.printStackTrace();
} finally {
if (reader = null) {
try {
reader.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
}
}

補足情報(FW/ツールのバージョンなど)

オンライン実行環境にて練習しております。ご存知の方いらっしゃいましたら、何卒宜しくお願い致します。

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

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

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

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

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

dodox86

2021/11/09 06:07

> それを「入力123456789」⇒出力「あああああああああ」 > 等には出来ますでしょうか。 現時点の説明ではどうしたいか、読んだ者に伝わらないようです。"等には"ということは、"あああ..."ではない別のかたちがあるのですか? それとも"123456789"と9文字入れたら何か固定の文字を9文字出力したいということでしょうか。 ちゃんと「入力の条件、出力の条件、規則、法則」を説明しましょう。
dodox86

2021/11/09 06:20

それと、オンライン実行環境だと一般的に外部のファイルは開けないものですが、 > File file = new File("file"); 何か、"file"という名前で保存できるファイルがそのオンライン実行環境には用意されているのでしょうか。
m.ts10806

2021/11/09 06:29

頭が悪いかどうかはどうでも良いのですが、何を調べて何を参照してどう試そうとしたのでしょうか。具体的に記載願います。 調査の方向性が間違っていればどんな賢い人でも解決には繋がりません。
BeatStar

2021/11/09 06:57

とりあえず、単純な読み込みはできますか? 単純な書き込みはできますか? それぞれが出来ないと話になりません。 ローカル環境だと問題なさそうですが、オンラインIDE等だとそもそも出来ない場合もあります。 その場合、どんなに頑張っても出来ません。だってそもそもそれ自体を提供していないから。
guest

回答1

0

String.split(String regex) の使い方が違うようです。
split の引数には、(このケースでは)区切り文字 (=) を指定します。

Java

1 2import java.util.*; 3import java.io.*; 4 5public class Main { 6 7 public static void main(String[] args) throws IOException { 8 9 String text 10 = "1=あ" + "\n" 11 + "2=い" + "\n" 12 + "3=う" + "\n"; 13 14 Map<String, String> map = new LinkedHashMap<>(); 15 16 BufferedReader br = new BufferedReader(new StringReader(text)); 17 for (String line = br.readLine(); line != null; line = br.readLine()) { 18 19 String[] tokens = line.split("="); 20 map.put(tokens[0], tokens[1]); 21 } 22 23 System.out.println("2 -> " + map.get("2")); 24 } 25}

投稿2021/11/18 08:20

momodx

総合スコア185

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

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

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.35%

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

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

質問する

関連した質問