0

テキストフィールドの netbeans で Java の \ 記号を / に自動的に変換する方法はありますか。これの目的は、画像をデータベースにアップロードすることです。ファイル チューザーを使用して画像の場所を取得し、その場所 (アドレス) をテキスト フィールドに出力して、ユーザーがボタンをクリックしてアップロードできるようにしています。基本的に、AddressText を設定する前に、\ ごとに文字列変数 "info" を / に変換したい

私のコードは

     int returnVal = fileChooser.showOpenDialog(this);

     if (returnVal == JFileChooser.APPROVE_OPTION) {
     File file = fileChooser.getSelectedFile();

        // What to do with the file, e.g. display it in a TextArea
       String info =file.getAbsolutePath();

       AddressText.setText(info);

      }
4

3 に答える 3

0

Java で動作するために / である必要はありません。\ は特別な意味を持つため、場合によってはエスケープする必要があるため、 / を使用する方が便利な場合があります。

INSERT または UPDATE 文字列を作成するときに、データベースで \ 文字をエスケープする必要があるようです。あなたはこれをするべきではありません。パラメータ化されたクエリを使用する必要があります。パラメータ化されたクエリを使用すると、テキストをエスケープする必要がなくなり、SQL インジェクション攻撃に対して脆弱になることはありません。Java では、PreparedStatement オブジェクトを使用してこれを行います。

于 2012-06-22T15:28:22.447 に答える
0

DocumentListener を使用して同様のことを行いました。更新を取得したら、/ を検索して置き換えることができます。

http://docs.oracle.com/javase/7/docs/api/javax/swing/event/DocumentListener.html

ドキュメントリスナーには 3 つのメソッドがあります。実際に実装する必要があるのは2つだけです-削除/削除は空白のままにできます

ドキュメントが変更されたというメッセージを受け取った場合は、テキストフィールドで getText() を呼び出し、文字を検索/置換し、変更されたテキストで setText を呼び出す必要があります。

于 2012-06-22T15:08:15.950 に答える
0

いつでも使える可能性があります

... stringMyPath.replaceAll("\\","/");

しかし、Java はこの問題をうまく処理します。

于 2012-06-22T15:12:45.830 に答える