11

私は奇妙な問題に直面しています。
私がやっていることは、いくつかの値を DB (oracle 11g) にvarchar2として保存し、Java で値をフェッチし、フェッチしたデータを操作することです。
今、私はDB の値として\nrs.getString()を持っており、Java を使用してそれを取得しています。私は適切な値を取得しています\n

String newLine=rs.getString("column_value");

ここで、HTML ページを解析し、ページ全体を文字列として取得します。ページに、以下のような情報を表す 3 行があるとします。

Time: 08 AM - 11 AM
Duration : 36 minutes

コードでは、 「Duration :」をメソッドに渡すと、「36 分」が返されます。
私が使用するロジックは、「Duration :」のインデックスを取得し、 「\ n」が検出されるまで読み取ることです。改行を次のように宣言すると、コードは正常に機能します

String newLine= "\n";

しかし、DBから取得すると機能しません。これをDBに保存する必要がないことはわかっていますが、これらのアイテムをハードコーディングしたくありません。したがって、DBにのみ保存する必要があります。誰でもこれで私を助けることができますか???

4

4 に答える 4

12

newLine出力で取得したものを印刷する場合\n、DB から取得した文字列をエスケープ解除する必要がある場合があります。Apache Commons Lang には、そのための方法があります。

http://commons.apache.org/proper/commons-lang/javadocs/api-2.6/org/apache/commons/lang/StringEscapeUtils.html#unescapeJava(java.io.Writer, java.lang.String)

だからあなたは単に電話する必要があります

 String newLine = StringEscapeUtils.unescapeJava(rs.getString("column_value"));

お役に立てれば

于 2013-03-28T10:14:23.177 に答える
3

これを試して

String newline = System.getProperty("line.separator");
boolean hasNewline = word.contains(newline);
于 2013-03-28T10:00:48.293 に答える