- PR -

改行コードの検出方法

1
投稿者投稿内容
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2005-11-03 20:54
DB(oracle)に登録された文字列をjavaで取得し、改行コードを検出したいと思っています。
そこで質問なのですが改行コードの検出方法として「文字列.indexof("\n")」
でよろしいのでしょうか?
じゃんぬねっと
ぬし
会議室デビュー日: 2004/12/22
投稿数: 7811
お住まい・勤務地: 愛知県名古屋市
投稿日時: 2005-11-03 21:24
引用:

かんたろうさんの書き込み (2005-11-03 20:54) より:
DB(oracle)に登録された文字列をjavaで取得し、改行コードを検出したいと思っています。
そこで質問なのですが改行コードの検出方法として「文字列.indexof("n")」
でよろしいのでしょうか?


試せばわかる話だと思うのですが...

相手が Oracle だと line.separator とかでとはいかないのかな。

_________________
C# と VB.NET の入門サイト
じゃんぬねっと日誌
かつのり
ぬし
会議室デビュー日: 2004/03/18
投稿数: 2015
お住まい・勤務地: 札幌
投稿日時: 2005-11-03 21:24
'¥n'もしくは'¥r'が含まれているかを検査すると、
より確実になるでしょう。
しん
常連さん
会議室デビュー日: 2004/04/04
投稿数: 48
投稿日時: 2005-11-03 22:55
早速、試してみたいと思います。
お二方ともお返事ありがとうございました。
Gio
ぬし
会議室デビュー日: 2003/11/28
投稿数: 350
お住まい・勤務地: 都内から横浜の間に少量発生中
投稿日時: 2005-11-04 00:49
もう解決されたかもしれませんが、エンコーディングに対応した判別が必要だと思います。

「DBに登録された文字列」というのがカラムの型としては CHAR/VARCHAR なのか CLOB なのか、Oracle のバージョンは何かなどが書かれていないので推測ですが、最新の Oracle 10g rel.2 の場合は、特に指定していなければ UTF-8 なので¥n、Shift JIS を指定してあれば¥r¥nです。

ちなみに、ファイル内容をまったくエンコーディング変換せずに格納した場合、書き込んだマシンと読み出すマシンの OS が違っていると java.io.File.separator 定数が使えないのがいやらしいですね。
安全側で考えるとすると正規表現 ¥r?¥n で split でしょうか。
sia
常連さん
会議室デビュー日: 2004/05/02
投稿数: 38
投稿日時: 2005-11-04 06:40
あまりカンケイない情報かもしれませんが一応。

Unicodeでは改行文字が8種類認められています。
http://www.unicode.org/reports/tr13/tr13-9.html
実運用環境では、CR,CRLF,LF以外に遭遇することは
ほとんどないと思いますが。



[ メッセージ編集済み 編集者: sia 編集日時 2005-11-04 06:40 ]
奮闘中
会議室デビュー日: 2007/06/22
投稿数: 1
投稿日時: 2007-06-22 18:18
2年前の話ですねぇ

僕は、こんなやり方をしてます。

String strLine_r_n = System.getProperty("line.separator");
Pattern pattern = Pattern.compile(strLine_r_n);
Matcher match = pattern.matcher(dtoクラス.getメソッド());

もっといい方法があるかも知れませんが、出来たのでうれしかたったなぁ
1

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