JAVAであるファイル内の文字列を置換するプログラム(日本語)を作りたいのですが、
・
・
String h_s;
FileReader h_fr = new FileReader(in_filename);
BufferedReader h_br = new BufferedReader(h_fr);
while(true){
h_s = h_br.readLine();
if (h_s == null){
break;
}
●文字列を置換するプログラム●
}
・
・
ここの●文字列を置換するプログラム●にあたる適当な関数って何かありますか?
たとえばperlでいうと↓みたいなものなのですが・・・
s/置換前文字/置換後文字/g
よろしくお願いします。
No.5ベストアンサー
- 回答日時:
何度もすみません。
改良しました。
public String replace (String s,String s2,String s3) //I don't know that this works with Japanese...
{
int start_number = 0;
while (s.indexOf (s2,start_number) >= 0)
{
s = s.substring (0,s.indexOf (s2,start_number)) + s3 + s.substring (s.indexOf (s2,start_number) + s2.length (),s.length ());
start_number = s.indexOf (s2,start_number) + s3.length ();
}
return s;
}
No.9
- 回答日時:
以下のページに文字列置換そのものがあります。
http://park.ruru.ne.jp/ando/work/who/doc/jp_ne_r …
誰にもわからないJava講座http://park.ruru.ne.jp/ando/work/who/html/index. …
の
文字列操作
のとこですね。
(楽しく笑えて高度なことも書いててわかりやすくてお勧めです)
で、staticのことですが、
「static を付けると、オブジェクトを作らなくてもそのメソッドを使える」
というのは実際そうです。
オブジェクトはnewなりなんなりで作ってあげないと、
操作できないんです。
ないものを使おうとしても無理ですよね。
でもstatic付けてると静的に配置されるので
つかえる、と。
参考URL:http://park.ruru.ne.jp/ando/work/who/html/index. …
No.8
- 回答日時:
ええとですね、僕も実はよく分かってないのですが (^_^;)、
public class A
{
public static void main (String a)
{
replace ("ABC","A","-");
}
//--省略
}
この様にするとダメなんですよ、理由は分からないのですが(笑)。
もう、おまじないと思った方がいいんじゃないですかね。
メインエントリーポイントがどうのとかいうので、
public class A
{
public static void main (String a)
{
new A (); //これが重要らしい
}
public A ()
{
//処理
replace ("ABC","A","-");
}
//省略
}
こうしないといけないみたいです。ちゃんと説明できなくって申し訳ないのですが、static を付けると、オブジェクトを作らなくてもそのメソッドを使える、という意味に解釈しています。僕は(笑)。
例えば、
public class A
{
public String abc ()
{
return "abc";
}
}
をいきなり A.abc (); と呼び出しても動いてくれませんが、
public class A
{
public static String abc ()
{
return "abc";
}
}
は、A.abc (); で動いてくれます。
ん~、僕もよく分かってないので、おかしな返答になっています。すみません。この辺のコアな所は本などでお調べになった方が無難かと思います。
No.7
- 回答日時:
下の、間違いです!
下の下の方が正しいです。
ありがとうございます。できました!ただ・・
static でない メソッド replace(java.lang.String,java.lang.String
,java.lang.String) を static コンテキストから参照することはできません。
コンパイル時に↑といったエラーがでたので
public static String replace(String s,String s2,String s3)
↑のようにstaticを適当に追加したら動いたのですが、これってどういう意味なのでしょうか?
元々の質問からそれてごめんなさい・・・
No.6
- 回答日時:
ほんっとうに申し訳ないです m(v_v)m
今度こそ・・・・
public String replace (String s,String s2,String s3) //I don't know that this works with Japanese...
{
int start_number = 0;
while (s.indexOf (s2,start_number) >= 0)
{
s = (s.substring (0,s.indexOf (s2,start_number)) + s3 + s.substring (s.indexOf (s2,start_number) + s2.length (),s.length ()));
start_number = s.indexOf (s2,start_number) + s3.length () - 1;
}
return s;
}
No.3
- 回答日時:
下のアドバイスに追加です。
「文字」となっている所は「文字列」と解釈されてかまいません。
それでも動作します。
又、使い方ですが、
s = replace ("置き換え!","き","きかえられたら置き");
System.out.println (s);
これを実行すれば「置き換えられたら置き換え!」が出力されるハズです。
No.2
- 回答日時:
今、即席で作ってみました。
日本語に対応しているかは分からないのですが、一応。public String replace (String s,String s2,String s3) //I don't know that this work with Japanese...
{
while (s.indexOf (s2) >= 0)
{
s = s.substring (0,s.indexOf (s2)) + s3 + s.substring (s.indexOf (s2) + s2.length (),s.length ());
}
return s;
}
//s = テキスト s2=検索する文字 s3=置き換える文字
No.1
- 回答日時:
Java は良く知らないのですが、正規表現って無いみたいですね。
ただ、正規表現を扱うパッケージは探せばあるみたい。
例えば GNU だったら、参照URLのところに。
javascript にはあるのにね。
参考URL:http://www.cacas.org/~wes/java/
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- その他(コンピューター・テクノロジー) 正規表現の置換で一部の文字列をそのまま残したい 2 2022/05/03 19:19
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Visual Basic(VBA) Excel VBA 教えてください。 VBA初心者です。 詳しい方がいましたら教えてください。 下記 3 2023/04/25 11:22
- Visual Basic(VBA) EXCEL VBA 単語置き換え について質問です ブック名 ぶぶぶ シート名 ししし セル V3〜 3 2023/03/08 01:41
- Java java 入力された文字列を数値に置き換えて整数にし、計算をしたいです。 <を10として /を1とし 4 2022/05/16 21:08
- Visual Basic(VBA) Vbaで数式をポーランド記法に変換するコードを作って実行しようとするとフリーズします。 1 2022/05/24 17:53
- Excel(エクセル) PHPプログラムをエクセルに張り付けると検索ボックスがでてくる! 3 2022/05/08 07:10
- Excel(エクセル) 数式の置換がうまく行かない 6 2022/05/04 15:51
- Visual Basic(VBA) 特定の文字を簡単な操作で半角スペースに変換するか削除したい 2 2022/11/01 10:35
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
ボタンの複数割り当てについて
-
C#で、あるクラスのメンバーす...
-
Junitテストでvoid戻り値メッソ...
-
大量のデータを読み込んで表示...
-
C#でのWNetAddConnection3の使...
-
Processingでマウスクリックで...
-
Thread.sleepのInterruptedExce...
-
【java】座標の値をテキストフ...
-
Javaでパラパラアニメを作成す...
-
Visual C♯ フォーム間での値の...
-
文字コードチェックについて
-
【C#】ソースコードをファイル...
-
iアプリ 複数パネル切替時の変...
-
配列の受け渡し
-
Javaの課題について質問です。...
-
フェードアウト時にぶちっと画...
-
ジャバスクリプトについて。
-
[JAVA]try 内の変数を外で!?
-
ダブルクォーテーションのrepla...
-
1~100までの数字を表示し、か...
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
大量のデータを読み込んで表示...
-
Junitテストでvoid戻り値メッソ...
-
C#で、あるクラスのメンバーす...
-
C#でのWNetAddConnection3の使...
-
C# visibleプロパティをfalseに...
-
unityでのC++エラーの原因がわ...
-
ボタンの複数割り当てについて
-
C#で別のFormへ複数の値を返そ...
-
エンターキーを押すとOKボタン...
-
LVM_SETITEMSTATEでListViewの...
-
ユーザーコントロールを動的に...
-
[C#.net]スレッド化された別フ...
-
C# 矢印キーの取得
-
C#から、C++で作成したdll内の...
-
C# DataGridView列カスタマイズ
-
C#でキーイベントが発生しない...
-
Thread.sleepのInterruptedExce...
-
C#でのオブジェクトのコピーに...
-
C# 半角カナの文字化けについて
-
文字列の置換
おすすめ情報