• ベストアンサー

String#replaceALL

をつかって 「俺は~」を「私は~」 に変えたいのですが、 String str = "俺は天才だ。冗談だ"; str.replaceAll("俺", "私"); System.out.println(str.toString()); ではうまく行きません。 正規表現とかよく知らないので教えてください。

noname#101202
noname#101202
  • Java
  • 回答数1
  • ありがとう数1

質問者が選んだベストアンサー

  • ベストアンサー
  • prophetok
  • ベストアンサー率44% (13/29)
回答No.1

str = str.replaceAll("俺", "私");

noname#101202
質問者

お礼

基本を忘れてました。

関連するQ&A

  • String定数プールと"==演算子"との関係。

    String str1 = new String("str1"); String str2 = new String("str1"); String str3 = "str1"; if(str1 == str2){    System.out.println("same!"); } if(str1 == str3){    System.out.println("same!"); } 上記のコードで実行すると、"same!"が実行されません。 Stringオブジェクトには定数プールがあって、新たにStringオブジェクトが作成されたとき、定数プールに入っているそれまでに存在していたStringオブジェクトの値と同じであったら、新たにStringオブジェクトを作らず、それまでにあったStringオブジェクトの参照を当てるということなのです。 それに従えば、str2,str3はstr1と同じStringオブジェクトを参照しているはずだから、if文の結果はtrueになるはずなんですが、、、。 適切な回答をいただきたく思います。よろしくお願いいたします。

  • String <=> byte配列 の際のエンコード

    なんで、 String str = "あいうえお"; byte[] temp = str.getBytes("8859_1"); String str2 = new String(temp, "8859_1"); System.out.println(str2); このコードが ????? を出力するかわかる方、おしえてください。

    • ベストアンサー
    • Java
  • stringのreplace

    import java.io.*; public class ex51c { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while(true) { System.out.print("String> "); String str= in.readLine(); if(str.equals("")) { break; } String res = ""; res =str.replace('a', '*') returns str.replace('e', '*') returns str.replace('i', '*') returns str.replace('o', '*') returns str.replace ('u', '*'); System.out.println(res); } } } このようなプログラムを作ってみたのですが、 コンパイル時にエラーが出ます。 どこを直せばいいのでしょうか。教えてください。

    • ベストアンサー
    • Java
  • replaceAllの使い方

    replaceAll(String regex, String replacement) 指定された正規表現に一致する、この文字列の各部分文字列に対し、指定された置換を実行します。 ということなので、 String str = "あ00a123"; String str2 = str.replaceAll("[^0-9]",""); で、str2は "00123" となると思ったのですが、実際はなりませんでした。 だめもとで思いつく限りの書き方を試してみたのですが、([]をとってみたり、replaceAll("あ","A")としてみたり…結局何の置換もできませんでした。 replaceAllの使い方教えていただきたいです。

    • ベストアンサー
    • Java
  • コマンドプロンプトでひらがなの入力が出来ません。

    普段グーグル日本語入力を使っています。 OS XPsp2 import java.io.*; class Mojiretuate { public static void main(String[] args) throws IOException { String str = "こんにちは"; String str2; BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); System.out.println("文字列当てゲームです。"); System.out.println("答えは何かのあいさつです。"); for(;;){ System.out.println("\n入力"); str2 = br.readLine(); System.out.println("入力文字列の長さ:" + str2.length()); if(str.equals(str2)){ System.out.println("正解です"); break; } else if(str2.length() > str.length()){ System.out.println("長すぎます。"); } else if(str2.length() == str.length()){ System.out.println("長さはあっています。"); } else{ System.out.println("短すぎます。"); } } System.out.println("終了"); } }

    • ベストアンサー
    • Java
  • 正規表現の検索について

    正規表現のエスケープしなければいけない文字が文字列に含まれているかどうかをチェックしたいのですがうまくいきません。 今は、下記のようにしてnoと表示されます。 よろしくお願いします。 String str ="(1)test"; Pattern p; Matcher m; p = Pattern.compile("\\(1\\)"); m = p.matcher(str); if(m.matches()) { System.out.println("ok"); }else{ System.out.println("no"); }

    • ベストアンサー
    • Java
  • HashMapについて

    質問させてください 以下に簡単なコードをJBuilderで作成しました。 printでブレークをはってmapインスタンスを評価してみると、mapに20個のキーが登録されるはずが、 16個しかいません。 この時点でstr1[16]が評価しても表示されていないのですが、map.get()で正常に取得はできています。 どのようなことが考えられるか、わかる型がいましたら教えてください。よろしくお願いいたします。 import java.util.*; class Test { public static void main(String[]args){ HashMap map = new HashMap(); String str1[] = new String[20]; String str2[] = new String[20]; for(int i = 0; i < 20; i ++){ str1[i] = new String(Integer.toString(i)); str2[i] = new String(Integer.toString(i * 10)); map.put(str1[i],str2[i]); } System.out.println("デバック用ブレーク"); System.out.println(map.get(str1[11])); } }

    • ベストアンサー
    • Java
  • Stringクラスの文字列の内容

    こんにちわ。 http://oshiete1.goo.ne.jp/kotaeru.php3?q=742689 に似たような質問がございましたが・・・ 関連書籍やサイトのいずれを見ても、 「Stringクラスは文字列の内容を変更することは出来ない」 と書いていますが・・・ String str1; String str2; str1="こんにちわ"; str2="さようなら"; str1=str1+str2; System.out.println(str1); とコーディングすると、何事もなく、 「こんにちわさようなら」 と出力されます。 そうなると、StringBufferクラスのappendメソッドをわざわざ使用しなくてもよくなるのですが、 これは、どのように解釈すればよいのかご存知の方がおりましたら、ぜひ、教えてください。 以上、宜しくお願いいたします。

    • ベストアンサー
    • Java
  • javaのStringデーターの読込みについて

    javaのStringTokenizerを使用しました、ストリングデーターの読み取りに ついて質問します。 入力ファイルの200.0から800.0の7個のデーターは読取ることが出来ます。 次の行の200.0を読込みますと、『str=st.nextToken(); 』でエラーになります。 Q1)このエラーの原因について、コメント頂けますと大変助かります。 //入力ファイル 200.0 300.0 400.0 500.0 600.0 700.0 800.0 200.0 2000.0 4000.0 110 //ファイルの読取コード void fileIn_f_snd_chk_etc(){ String strX; String str; try{ File file = new File("c:\\TRSX700\\file_snd_chk_etc.txt"); if (myMsrCtlPanel.checkBeforeReadfile(file)){ BufferedReader bread = new BufferedReader(new FileReader(file)); int j=0; while((strX = bread.readLine()) != null){ //<----String[] values = str.split(" * ",0); StringTokenizer st=new StringTokenizer(strX," * "); //====================== for(int i=0; i<7; i++){ //ブランクは読み飛ばしている str=st.nextToken(); f_snd_chk[i].setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_snd_chk[i].getText()+" "); } // System.out.println(""); //ここまでは、正常読取 //====================== str=st.nextToken(); //ここでエラーになる f_imp_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_imp_chk+" "); //====================== str=st.nextToken(); f_dst_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_dst_chk+" "); //====================== str=st.nextToken(); f_fft_chk.setText(str); //fileIn_f_snd_chk_etc() // System.out.print(f_fft_chk+" "); //====================== str=st.nextToken(); key_data.setText(str); //fileIn_f_snd_chk_etc() System.out.print("f_imp_chk="+f_imp_chk.getText()+" f_dst_chk="+f_dst_chk.getText()+" f_fft_chk="+f_fft_chk.getText()+" key_data="+key_data.getText()); } //while bread.close(); } //if else{ System.out.println("ファイルが見つからないか開けません"); } } //try catch(FileNotFoundException e){ System.out.println("FileNotFoundException: "+e); } catch(IOException e){ System.out.println("IOException: "+e); } System.out.println("file_inの終了"); } //fileIn_f_snd_chk_etc() //以上

  • 文字列の比較について

    BufferedReaderでファイルを読んだのちに、見出しの文字列をカンマで分割して 文字列を比較しようとしています。 ですが、分割すると、文字列が別な文字コードによる表記に変わってしまいます。 なぜでしょうか? また、解決方法などのヒントなどあれば教えてください。 BufferedReader buffReader = new BufferedReader( new FileReader("/home/masa/Desktop/Sample.csv")); String s; int ini=0; int wamei=0; int i=0; while((s = buffReader.readLine())!= null){ String[] str = s.split(",", -1); //System.out.println(s); if (i == 0) { for(int j=0; j<str.length;j++){ System.out.println(String.toString(str)); if(str.equals("五十音")){ini = j;} System.out.println("五十音"+ini); if(str.equals("a")){wamei = j;} System.out.println("和名"+wamei); //System.out.println(j); } } i++;

    • ベストアンサー
    • Java

専門家に質問してみよう