ここから本文です

Java文字列挿入

mus********さん

2013/10/717:47:30

Java文字列挿入

テキストファイルで保存してあるhtmlの書き換え

divタグにid名をJavaプログラムで挿入したいのですが何か良い案ないですか?

--------------------------before-html.txt-----------------
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>sample</title>
</head>
<body>

<div>aiueo</div>
<div>kakikukeko</div>
<div>sasisuseso</div>
<div>あいうえお</div>
<div>かきくけこ</div>
<div>さしすせそ</div>

</body>
</html>
---------------------------------------------------------
-------------id挿入後:after-html.txt--------------------------
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=Shift_JIS">
<title>sample</title>
</head>
<body>

<div id="div1"onmouseover="inin(id)">aiueo</div>
<div id="div2"onmouseover="inin(id)">kakikukeko</div>
<div id="div3"onmouseover="inin(id)">sasisuseso</div>
<div id="div4"onmouseover="inin(id)">あいうえお</div>
<div id="div4"onmouseover="inin(id)">かきくけこ</div>
<div id="div5"onmouseover="inin(id)">さしすせそ</div>

</body>
</html>


---------------------------------------------------------
としたいと思っています。
ファイルの入出力については学習済みで理解可能なのですが、文字列挿入については勉強したのですが良い案が浮かばないので、皆さんのお知恵をお貸しください。
id名は上記では"div1~div5"までですがdivタグの出現回数に対して1,2,3,4,・・・・・・・・と増やしていきたいです。

閲覧数:
342
回答数:
2
お礼:
500枚

違反報告

ベストアンサーに選ばれた回答

sle********さん

2013/10/802:11:59

Matcher matcher = Pattern.compile("<div").matcher("<div>あ<div>か<div>さ");
StringBuffer sb = new StringBuffer();
int n = 1;
while (matcher.find()) matcher.appendReplacement(sb, "<div id=\"div"+n+++" onmouseover=\"inin(id)\"");
matcher.appendTail(sb);
String result = sb.toString();

resultに<div id="div1 onmouseover="inin(id)">あ<div id="div2 onmouseover="inin(id)">か<div id="div3 onmouseover="inin(id)">さが入る

質問した人からのコメント

2013/10/8 18:54:54

ありがとうございます。
正規表現が間違ってたみたいで上手くいかなかったみたいです。

ベストアンサー以外の回答

1〜1件/1件中

ami********さん

2013/10/813:35:14

僕は同じような課題を学校で演習しました。その課題を変更したので載せます。


// ファイル名:Q14114605029.java
// 情技1年
import java.util.*;
import java.io.*;

public class Q14114605029 {
public static void main(String[] args) throws Exception{
Scanner sc = new Scanner( new File("before-html.txt") );
PrintWriter pw = new PrintWriter( new File("after-html.txt") );
int cnt = 1;

while( sc.hasNext() ){
String str1 = sc.nextLine();
String str2 = str1;
str1 = str1.replaceAll("<div>", "<div id=\"div" + cnt + "\" onmouseover=\"inin(id)\">" );
pw.println(str1);
if( !str1.equals( str2 ) ){
cnt++;
}
}
sc.close();
pw.close();
}
}

みんなで作る知恵袋 悩みや疑問、なんでも気軽にきいちゃおう!

Q&Aをキーワードで検索:

Yahoo! JAPANは、回答に記載された内容の信ぴょう性、正確性を保証しておりません。
お客様自身の責任と判断で、ご利用ください。
本文はここまでです このページの先頭へ

「追加する」ボタンを押してください。

閉じる

※知恵コレクションに追加された質問は選択されたID/ニックネームのMy知恵袋で確認できます。

不適切な投稿でないことを報告しました。

閉じる