• ベストアンサー

【初心者です】大文字←→小文字

import java.io.*; public class ex52a { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader (System.in)); while(true) { System.out.print("String> "); String s = in.readLine(); if(s.equals("")) { break; } String res = ""; s = s.toUpperCase(); s = s.toLowerCase(); res = s; System.out.println(res); } } } これだと、大文字は小文字になるのに、小文字は大文字になりません。 単純に二つ並べるだけでは駄目なのでしょうか...

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

  • ベストアンサー
回答No.5

/* #4さんのまとめ:ex52a.java */ import java.io.*; public class ex52a { public static void main(String[] args) throws Exception { StringBuffer buf = new StringBuffer(); BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while(true){ buf.delete(0,buf.length()); System.out.print("String> "); String s = in.readLine(); if (s.equals("") ){break;} for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); buf = Character.isLowerCase(c) ? buf.append(Character.toUpperCase(c)) : buf.append(Character.toLowerCase(c)); /* 「式じゃない」とかエラー出されたので */ } System.out.println(buf.toString()); } } } /* ex52ab.java CLASSPATHの通った所に http://jakarta.apache.org/site/downloads/downloads_commons-lang.cgi にあるbinaryのzipの中のjarファイルを置いてコンパイルするなら こういうのもありです。 */ import java.io.*; import org.apache.commons.lang.*; public class ex52ab { public static void main(String[] args) throws Exception { BufferedReader in = new BufferedReader(new InputStreamReader(System.in)); while(true) { System.out.print("String> "); String s = in.readLine(); if(s.equals("")) { break; } String res = ""; s = StringUtils.swapCase(s); res = s; System.out.println(res); } } }

すると、全ての回答が全文表示されます。

その他の回答 (4)

  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.4

>大文字のものを小文字に、小文字のものを大文字にしたいのですが、 やっと聞きたいことが分かりました。 StringBuffer buf = new StringBuffer(); for (int i = 0; i < s.length(); i++) { char c = s.charAt(i); Character.isLowerCase(c) ? buf.append(Character.toUpperCase(c)) : buf.append(Character.toLowerCase(c)); } System.out.println(buf.toString()); かな。コンパイルして検証していませんが。多少のコンパイルエラーは自力で直して下さい。

すると、全ての回答が全文表示されます。
回答No.3

>大文字のものを小文字に、小文字のものを大文字にしたいのですが、 その場合はどうしたらいいんでしょうか。 もうちょっとだ。がんばれ~。

参考URL:
http://java.sun.com/j2se/1.5.0/ja/docs/ja/api/java/lang/Character.html#isLowerCase(char)
すると、全ての回答が全文表示されます。
  • dekopa-
  • ベストアンサー率42% (161/378)
回答No.2

s = s.toUpperCase(); s = s.toLowerCase(); 大文字にして、それを再度小文字にしていますね。穴を掘って即埋め直しているような物です。 画面に表示したいだけなら、代入せず即表示してしまいましょう。 以下、readLine()から。 String s = in.readLine(); if(s.equals("")) { break; } System.out.println(s.toUpperCase()); System.out.println(s.toLowerCase());

stealther
質問者

お礼

ありがとうございます。 これだと、入力された文字を全部大文字、小文字にするタイプですよね? 大文字のものを小文字に、小文字のものを大文字にしたいのですが、 その場合はどうしたらいいんでしょうか。

すると、全ての回答が全文表示されます。
  • suzukikun
  • ベストアンサー率28% (372/1325)
回答No.1

sは必ずLowerCaseの戻り値に置き換えられているからです。

stealther
質問者

お礼

なるほど... それでは、どうしたらきちんと動くようになるんでしょうか..

すると、全ての回答が全文表示されます。

関連するQ&A