- - PR -
制御コードと文字列について
投稿者 | 投稿内容 | ||||
---|---|---|---|---|---|
|
投稿日時: 2006-10-03 10:02
ソース
------------------------------------------------------ lineFeedCode = getDb(LINE_FEED_CODE); //DBから"\n"を取得 String a = text + "\"\n"; String b = text + "\"" + lineFeedCode; ------------------------------------------------------ 現在javaの勉強中で,以下の件について悩んでおります。 上記aの方法で出力した場合,正しく改行されます。 しかしb例の,"\n"をDBに定義値として結合した場合, \nがそのまま文字列として出力され,改行されません。 この原因は,制御コードと文字列の違いと思われます。 b例の,DB定義で"\n"を取得し,且つ改行する方法は御座いますでしょうか。 ご存知の方,ご教授お願い致します。 -- j2sdk1.4.2_10 | ||||
|
投稿日時: 2006-10-03 10:08
追記です。
------------------------------------------------------ lineFeedCode = getDb(LINE_FEED_CODE); //DBから"\n"を取得 String a = text + "\"\n"; String b = text + "\"" + lineFeedCode; ------------------------------------------------------ a.replaceAll("\n", "LF")); b.replaceAll("\n", "LF")); replaceAllはaの場合変換してくれますが,bの場合は駄目でした。 | ||||
|
投稿日時: 2006-10-03 10:14
一応確認ですが、DBに文字列として¥nを登録されているわけでは 無いですよね? | ||||
|
投稿日時: 2006-10-03 10:18
>一応確認ですが、DBに文字列として¥nを登録されているわけでは
>無いですよね? ご返信ありがとうございます。 文字列として¥nを登録していました。 [ メッセージ編集済み 編集者: ひろ 編集日時 2006-10-03 10:56 ] | ||||
|
投稿日時: 2006-10-03 10:24
TAKEZOも仰っていますが
ほぼ間違いなくDBに文字列'¥n'を登録しているのだと思われます つまり String b = text + "¥"" + lineFeedCode; の実体は String b = text + "¥"¥¥n"; になっているのです lineFeedCodeは¥¥nが収められているので ¥をひとつ削除するか もしくはDBに¥nを間違いなく登録するようにしましょう。 ¥nを登録する方法はJavaから行うのが間違いないでしょう。 | ||||
|
投稿日時: 2006-10-03 10:39
あすかさんの説明の通りだと思います。どうしても文字列で登録したいのであれば
こんな感じになるかと思います。 b.replaceAll("¥¥¥¥n", "¥n")); 参考までですが"¥¥¥¥n"は正規表現のパターン指定なので¥が4つ必要になります。 (文字列¥¥をパターンとして渡すと¥がマッチする) | ||||
|
投稿日時: 2006-10-03 10:47
普通の置換でええやん なんで正規表現? | ||||
|
投稿日時: 2006-10-03 10:52
String#replaceだったら、charの置換ですけどね。ループを書かなきゃならない。 [ メッセージ編集済み 編集者: Edosson 編集日時 2006-10-03 10:55 ] |