- PR -

制御コードと文字列について

投稿者投稿内容
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 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
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 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の場合は駄目でした。

TAKEZO
ベテラン
会議室デビュー日: 2003/12/25
投稿数: 59
投稿日時: 2006-10-03 10:14
引用:

lineFeedCode = getDb(LINE_FEED_CODE); //DBから"¥n"を取得



一応確認ですが、DBに文字列として¥nを登録されているわけでは
無いですよね?
ひろ
ベテラン
会議室デビュー日: 2003/12/26
投稿数: 97
投稿日時: 2006-10-03 10:18
>一応確認ですが、DBに文字列として¥nを登録されているわけでは
>無いですよね?

ご返信ありがとうございます。
文字列として¥nを登録していました。

[ メッセージ編集済み 編集者: ひろ 編集日時 2006-10-03 10:56 ]
あすか
ぬし
会議室デビュー日: 2006/07/12
投稿数: 309
投稿日時: 2006-10-03 10:24
TAKEZOも仰っていますが
ほぼ間違いなくDBに文字列'¥n'を登録しているのだと思われます

つまり
String b = text + "¥"" + lineFeedCode;
の実体は
String b = text + "¥"¥¥n";
になっているのです

lineFeedCodeは¥¥nが収められているので
¥をひとつ削除するか
もしくはDBに¥nを間違いなく登録するようにしましょう。
¥nを登録する方法はJavaから行うのが間違いないでしょう。
TAKEZO
ベテラン
会議室デビュー日: 2003/12/25
投稿数: 59
投稿日時: 2006-10-03 10:39
あすかさんの説明の通りだと思います。どうしても文字列で登録したいのであれば
こんな感じになるかと思います。

b.replaceAll("¥¥¥¥n", "¥n"));


参考までですが"¥¥¥¥n"は正規表現のパターン指定なので¥が4つ必要になります。
(文字列¥¥をパターンとして渡すと¥がマッチする)
ぷさいくろう
ぬし
会議室デビュー日: 2006/08/30
投稿数: 1034
投稿日時: 2006-10-03 10:47
引用:

TAKEZOさんの書き込み (2006-10-03 10:39) より:
あすかさんの説明の通りだと思います。どうしても文字列で登録したいのであれば
こんな感じになるかと思います。

b.replaceAll("¥¥¥¥n", "¥n"));


参考までですが"¥¥¥¥n"は正規表現のパターン指定なので¥が4つ必要になります。
(文字列¥¥をパターンとして渡すと¥がマッチする)



普通の置換でええやん
なんで正規表現?
Edosson
ぬし
会議室デビュー日: 2004/04/30
投稿数: 675
投稿日時: 2006-10-03 10:52
コード:

String#replaceAll

public String replaceAll(String regex,
String replacement)

指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。

このフォームのメソッド呼び出し str.replaceAll(regex, repl) では、次の式と正確に同じ結果が得られます。

Pattern.compile(regex).matcher(str).replaceAll(repl)


String#replaceだったら、charの置換ですけどね。ループを書かなきゃならない。

[ メッセージ編集済み 編集者: Edosson 編集日時 2006-10-03 10:55 ]

スキルアップ/キャリアアップ(JOB@IT)