0

MySQL データベースを使用して、グループ チャットで単語の使用状況を追跡したいと考えています。現在、insertWords メソッドに渡されるメッセージは XML 文字列です。'XML 文字列には、やなどの特殊文字を含めることができます"。String.replace を使用して XML 形式の文字列を通常のメッセージに変換するよりも良い方法はありますか?

私のメッセージが次の場合:I'm bad, but they aren't that "good"

どうすれば次のように変換できますか:I'm bad, but they aren't that "good"

私のコードは、apos を 2 回挿入し、quot を 2 回挿入します。これを修正するにはどうすればよいですか?

Pattern p = Pattern.compile("[\\w']+");

PreparedStatement insertWordStmt = connection.prepareStatement("INSERT INTO word (word, count) VALUES (?, 1) " +
        "ON DUPLICATE KEY UPDATE count=count+1");

public void insertWords(String msg) {
    msg = msg.toLowerCase();
    try {
        Matcher m = p.matcher(msg);
        while ( m.find() ) {
            String word = msg.substring(m.start(), m.end());
            insertWordStmt.setString(1, word);
            insertWordStmt.executeUpdate();
        }
    } catch (SQLException e) {
        e.printStackTrace();
    }
}
4

1 に答える 1

0

二重引用符の一致を追加するには、試してください

Pattern p = Pattern.compile("[\\w'\"]+"); 

コメント後に編集

msg = msg.toLowerCase().replace("'","'").replace("&quote;","\""); 
于 2012-07-10T07:34:33.153 に答える