DBから取得した文字列に半角スペースか全角スペースが
含まれている場合取り除きたい、と考えています。
以下の様なロジックを考えているのですが、
こんな感じで良いのでしょうか。
普通は、どの様にするのでしょうか?
アドバイスなどありましたら、お願い致します。m(__)m
private String test(String str) {
StringBuffer sb = new StringBuffer();
char[] chr = str.toCharArray();
for(int p=0;p<chr.length;p++) {
if( chr[p] == ' ' || chr[p] == ' ' ) continue;
sb.append(chr[p]);
}
return sb.toString();
}
No.1ベストアンサー
- 回答日時:
String#replaceAll() でいけると思いますが、ご指摘の方法でも問題ないと思います。
http://java.sun.com/j2se/1.4.2/docs/api/java/lan …
私だったら char の配列は作らずに、for文の中で charAt() で毎回1文字ずつとりだす方法もためしてみるかもしれません。可読性もパフォーマンスもあんまかわらないかもしれませんが、実際動かしてみてボトルネックになる箇所であれば色々試して比べてみてはいかがでしょうか。
そうでなければとりあえず「動きゃいい」程度に考えて差し支えないかと。
返信ありがとうございます。
replaceAllメソッドを使って置換する方法や、charAtを使う方法もあるのですね。
作業環境がJDK1.3.1だったため、replaceAllは使えませんでした。
質問する際に、バージョンを書いていませんでした。申し訳ありません。m(__)m
No.4
- 回答日時:
>DBから取得した文字列
SQLでやるとか(^^;
(1)
select replace(replace(item01, ' ', ''), ' ', '') as item01
from table001
where ~
(2) Oracle10 だった場合
select regexp_replace(item01, '([ ])+', '') as item01
from table001
where ~
(2)は動作環境がないので確認できません。
No.3
- 回答日時:
既に動くサンプルがあっての質問ということはパフォーマンスを気にされてのことでしょうか?
もしかすると indexof でスペースの位置を判別して、その手前までを substring して StringBuffer に append、という繰り返しの方が一文字一文字 append しなくて良い分高速かもしれません。
>既に動くサンプルがあっての質問ということはパフォーマンスを気にされてのことでしょうか?
半角スペース・全角スペースをif分で判断する時に' 'や' 'としているのですが
getBytesメソッドを使って文字コードを見て判断した方が良いのかな?
と思い、普通はどうやるのだろうと不安になったので質問させて頂きました。
パフォーマンスの事はあまり気にしていませんでした。
度々の言葉足らず、申し訳ありませんでした。
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) 【マクロ】フォルダAからダBへファイルを、ファイルの更新日時の条件で、1つづつ移動するには? 3 2022/08/25 09:56
- Excel(エクセル) 【マクロ】フォルダを3つ、POモニター上に、決まった並べ方をしたい 4 2022/08/31 11:05
- Visual Basic(VBA) 指定列最終行までのスペースを改行するVBAについて 2 2022/06/01 19:50
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- C言語・C++・C# str[j++]の意味 2 2022/08/30 16:20
- Visual Basic(VBA) 動かなくなってしまった古いVBAを動くようにしたい 8 2022/09/20 13:57
- Visual Basic(VBA) 指定した文字から指定した文字のスペースまでを削除するVBAの構文について 6 2022/07/24 22:20
- Excel(エクセル) エクセルの数式で教えてください。 1 2023/02/02 10:20
- Access(アクセス) Accessのテキストボックスの入力文字制限 1 2023/01/18 20:43
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
C言語の変数(LSB)の合わせ込...
-
Evaluate()に文字列の形式の数...
-
暗号化文字列を英数字のみにしたい
-
ArrayListの要素数の上限
-
結合した文字列をファイル名に...
-
JSPでHashMap・配列の変数の値...
-
BCD形式で時刻を!
-
java nビット目を読み取る
-
wsprintf関数の使い方について
-
char型での演算子
-
StringBufferクラスについて
-
WinInet.dllを利用したHttpQuer...
-
JSPでの計算結果表示
-
Excel VBA マクロ 変数を用いた...
-
素朴な疑問
-
matchesを否定文として使う方法...
-
javaのCSVデータ読込についてです
-
hiddenの値を消したくない!
-
VB6,論理演算子Orの使い方がわ...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
ダブルクォーテーションを含む...
-
BCD形式で時刻を!
-
wsprintf関数の使い方について
-
C言語の変数(LSB)の合わせ込...
-
ArrayListの要素数の上限
-
DateTimePickerに値を入れたい...
-
Stringクラスの変数の格納アド...
-
char型での演算子
-
javaのCSVデータ読込についてです
-
結合した文字列をファイル名に...
-
実行シェルからCOBOLへパラメー...
-
hiddenの値を消したくない!
-
matchesを否定文として使う方法...
-
JSPでHashMap・配列の変数の値...
-
JSPでの計算結果表示
-
VB6,論理演算子Orの使い方がわ...
-
ResultSetの内部構造(Java)
-
Evaluate()に文字列の形式の数...
-
日付や時刻の"01"を" 1"に変換...
-
PSQLExceptionが発生する
おすすめ情報