文字列から特定の文字を抜き出す処理をしたいです。
ちょっと調べてみたところ、replaceAllというものがあるそうで、こりゃいい!、とばかりにコーディングしてコンパイルしてみたのですが・・・。
JDKが1.3では使えなかったです・・・。
1.3で実現するにはどのようなコードを書いたらよいでしょうか?
確か、勉強し始めのころ、文字長をlength()でとって、一文字ずつ調べていって置換・・・
というようにしていたような気がしますが、
どのようなメソッドを使っていたかすっかり忘れてしまいました(ボケ
webで調べても1.3はすでに過去の産物なのか、replaceAllの例ばかりが引っかかります。
簡単なサンプルがあるととても助かります。
よろしくお願いいたします。
No.6
- 回答日時:
//以下は「文字列置換」ではありませんが…。
import java.util.*;
public class Demo {
public static void main(String[] a){
String text="(((ABC)()()(ABC)()())(ABC)))D";
String delimit="()";
StringBuffer buffer=new StringBuffer();
StringTokenizer tknzr=new StringTokenizer(text,delimit);
if(tknzr.hasMoreTokens()){
buffer.append(tknzr.nextToken());
}
while(tknzr.hasMoreTokens()){
buffer.append(" ");//←全角スペース
buffer.append(tknzr.nextToken());
}
System.out.println("["+buffer.toString()+"]");
}
}
StringTokenizerですね!
じつは私も昨日「文字列変換 java」で検索していたところ
こちらが引っかかりまして、
使ってみました。これ便利ですよね!
回答ありがとうございました!
No.5ベストアンサー
- 回答日時:
replaceAll もどきを作ってみました。
----------------------------------------------------------------
public class Sample {
public static String replaceAll(String source, String target, String replacement){
StringBuffer wk = new StringBuffer(source);
int repLen = target.length();
int i=source.length();
while(i>=0){
i=source.lastIndexOf(target, i);
if(i>=0){
wk.replace(i, i+repLen, replacement);
i--;
}
}
return wk.toString();
}
public static void main(String[] args) {
String str ="(ABC)(ABC)(ABC)";
String result = replaceAll(str, ")("," ");
result = replaceAll(result, "(","");
result = replaceAll(result, ")","");
System.out.println(result);
}
}
わざわざすみません!
早速コンパイルしてみました!
いろいろ応用が利きそうなので、使わせていただきたいと思います。
ありがとうございます。
No.4
- 回答日時:
>char型で「何も無い」を表現するにはどうするのでしょうか・・・?
char型で「何も無い」は、表現できないと思います。
この回答への補足
では、文字列から任意の文字を削除はどうやるのでしょうか。
delphiにdelete()というのがあったのでJavaにもあるかなあ、と思ったのですが、
あったものの「ファイルをデリート」でした・・・
No.3
- 回答日時:
> )(を取り除いた後そこに全角のスペースをひとつ入れたいです。
これって,全角スペースへの「置換」ですよね?
s.replase('(', ' '); // 2つ目のシングルクォートの中身は全角スペース
では駄目なのでしょうか?
駄目ならその理由を補足してください。
この回答への補足
回答ありがとうございます。
えっとですね・・・
(ABC)(ABC)(ABC)
のようになっています。
すると(と)を消して全角空白に置換していくと、
文字と文字の間が全角空白2文字、になってしまうんです。
ですので、)に関しては空白、(にかんしては''とやれば良いかな・・・
と思ったのですが''はだめなんですよね・・・
No.2
- 回答日時:
もう悩んでないでそういうメソッド自作してしまえばいいのでは?
public String myReplace(String s, char c) {
StringBuffer buf = new StringBuffer();
for (int i = 0, len = s.length(); i < len; i++) {
char sc = s.charAt(i);
if (sc != c)
buf.append(sc);
}
return buf.toString();
}
ああ、そうでしたね!
1.3だとStringBufferに変換しないと出来ない処理がありましたね・・・
1.4は結構ごまかしが利くようになっていますね・・・
しかし、実を申しますと、replace()というメソッドならあって、
引数は(char,char)なんですけど、for文を使わなくても文字列すべてに対して変換してくれるみたいです。
でも、入れ替えるときにはこれでいいのですが、”抜き取る”時にはどうしたら良いでしょうか?
'('を''という風にやったらエラーになってしまいました。
そういえばcharの''ってだめでしたね・・・
No.1
- 回答日時:
取り除きをするのでしょうか?
それとも抜き出しをするのでしょうか?
それとも置換をするのでしょうか?
正規表現を使うのですか?
この回答への補足
取り除きです。
もう少し言うと()が入ってしまっているので取り除いて、空白を入れたいです。
で・・・また少しわかったのですが、replaceAll()は無くてもreplace()があることがわかりました。
これでナントカできました!!・・・・
と思ったのですが、)(を取り除いた後そこに全角のスペースをひとつ入れたいです。
それでreplace('(','');
とやってみたのですが…!!
char型で''というのはだめだってことを思い出しました。
char型で「何も無い」を表現するにはどうするのでしょうか・・・?
nullでもだめでしたしもちろん””でもだめです・・・
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Excel(エクセル) capeofdragonと申します Excel2016を使っておりまして 半角又は全角の任意文字列が 2 2022/10/31 13:51
- JavaScript ブックマークレットについて 2 2022/10/09 11:48
- Excel(エクセル) Excelの空文字判定について 7 2023/01/06 13:25
- Android(アンドロイド) Android携帯のキーボード入力で時間入力を簡単にしたい 1 2023/05/17 02:13
- オープンソース csvデータのダブルクォーテーションで囲まれた文字内にあるカンマを削除したい 3 2022/09/02 15:17
- Java Java 南京錠 2 2023/02/04 11:46
- Visual Basic(VBA) VBAで、特定の文字より後を削除して残った数値を文字列に変換と特定の文字より前も削除したい 3 2022/04/15 19:21
- 政治 私の発明した「二階建て漢字」は使えるでしょうか? 3 2023/02/08 16:40
- フリーソフト フォルダ、ファイル名の一括変換について 3 2023/03/16 09:23
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
コマンドライン引数の*(アフ...
-
変数を動的に利用するには?
-
日本語が文字コードによっては...
-
クラスを使った電卓のプログラム
-
javaのプログラミングで作るRPG...
-
Java プログラム public class ...
-
DESを使用した暗号化/復号化処...
-
JSP/Servletのパラメータの受け...
-
NoSuchMethodErrorが解決できま...
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Socketの接続のタイムアウトを...
-
プログラミングの問題です。大...
-
数字の大小の比較とテストメソッド
-
コンストラクタの引数の中のnew?
-
java.util.concurrent.Future g...
-
StringクラスのcompareToメソッド
-
Javaがうまく動作しない理由
-
TCPプログラミング
-
ArrayList でスタックを
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
プログラミングの問題です。大...
-
変数を動的に利用するには?
-
中カッコ{}だけの記述について
-
System.exit()の値を取得したい
-
Javaでlog4jを使ってログ出力を...
-
NoSuchMethodErrorが解決できま...
-
javaで特定の文字列から特定の...
-
Socketの接続のタイムアウトを...
-
Java プログラム public class ...
-
javaのプログラミングで作るRPG...
-
インタフェイス実装と抽象クラ...
-
コマンドライン引数の*(アフ...
-
【初心者です】javaで平均値を...
-
Javaで日本語の出力が文字化けする
-
(大至急)JavaでATMもどきを作成
-
コンストラクタの引数の中のnew?
-
Java 最大公約数 gcd
-
C# DatagridviewにExcelシート...
-
randomで
-
GetterとSetterをやったのに。
おすすめ情報