

こんにちは。
javaの勉強をやっているのでですが
思うとおりに進みません。
一文字ずつ小文字なら大文字に大文字なら小文字に変換するといったものです。
途中経過です。
import java.io.*;
class Ex60{
public static void main(String args[])throws IOException{
String str3 ="0";
String output = "0";
String s1 = new String("end");
while(str3.equals(s1) == false ){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(str3.equals(s1) == false ){
System.out.print(">");
str3 = br.readLine();
if(str3.equals(s1) == true)
break;
for(int i=0; i<str3.length(); i++){
char c = str3.charAt(i);
if(Character.isLowerCase(c))
output = str3.toUpperCase();
else if(Character.isUpperCase(c))
output= str3.toLowerCase();
}
System.out.println("入力された文字列は" + str3 + "です。");
System.out.println("大文字小文字を変換すると" + output + "です。");
}
}
}
}
/*
実行結果
>abc
入力された文字列はabcです。
大文字小文字を変換するとABCです。
>AbC
入力された文字列はAbCです。
大文字小文字を変換するとabcです。
>AAb
入力された文字列はAAbです。
大文字小文字を変換するとAABです。
*/
条件として一文字が大文字か小文字の判定にはCharacterクラスの
isLowerCase()メソッド、isUpperCase()メソッド
一文字の変換はtoUpperCase()メソッド、toLowerCaseメソッドを使います。
どなたかよろしくおねがいします。
A 回答 (2件)
- 最新から表示
- 回答順に表示
No.2
- 回答日時:
こんな感じでどうですか?
・変換部分を[convert]メソッドとして分離しました。
・文字列[end]との比較を一箇所にしました。
・[equals]メソッドは真偽を返すので[==][!=]を使った冗長な比較をなくしました。
public class Ex60 {
public static String convert(String str) {
char[] ca = str.toCharArray();
for (int i = 0; i < ca.length; i++) {
if (Character.isLowerCase(ca[i]))
ca[i] = Character.toUpperCase(ca[i]);
else
ca[i] = Character.toLowerCase(ca[i]);
}
return new String(ca);
}
public static void main(String[] args) {
while (true) {
try {
System.out.print(">");
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
String input = br.readLine();
if(input.equals("end")){
break;
}
else{
String output = convert(input);
System.out.println("入力された文字列は" + input + "です。");
System.out.println("大文字小文字を変換すると" + output + "です。");
}
} catch (IOException e) {
e.printStackTrace();
break;
}
}
}
}
No.1
- 回答日時:
class Ex60{
public static void main(String args[])throws IOException{
String str3 ="";
String output = "";
String s1 = new String("end");
while(str3.equals(s1) == false ){
BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
while(str3.equals(s1) == false ){
System.out.print(">");
str3 = br.readLine();
if(str3.equals(s1) == true)
break;
for(int i=0; i<str3.length(); i++){
char c = str3.charAt(i);
if(Character.isLowerCase(c)){
String CC=String.valueOf(c); //char>String
output = output+CC.toUpperCase();
}
else if(Character.isUpperCase(c)){
String CC=String.valueOf(c); //char>String
output= output+CC.toLowerCase();
}
}
System.out.println("入力された文字列は" + str3 + "です。");
System.out.println("大文字小文字を変換すると" + output + "です。");
output="";//初期化
}
}
}
}
お探しのQ&Aが見つからない時は、教えて!gooで質問しましょう!
似たような質問が見つかりました
- Visual Basic(VBA) Excel VBAでAA(BBB) → BBB.AA に置換したい 2 2022/10/30 13:59
- Java Javaの問題なのですが、「3文字以上の英数字文字列を入力し、文字列の中に文字(9)が出てくるまでの 1 2023/06/06 18:55
- C言語・C++・C# C言語のエラーについて 2 2022/07/11 13:56
- Visual Basic(VBA) 入力ボックスが繰り返しポップアップして止まらない。 下記コードでファイル名の変更をしたいのですが、変 1 2022/09/08 11:27
- PHP PHPの構文で間違えが分からない 5 2022/07/11 16:38
- C言語・C++・C# c言語 プログラムのエラー 1 2023/02/11 20:31
- iPhone(アイフォーン) iphoneのキーボード 既存のものを使っています。 名前のローマ字入力等、1文字目だけ大文字にした 4 2022/06/28 21:56
- Visual Basic(VBA) ファイル名の右側を変更したい ファイル名:「1001日別売上」の左側へ「2022」を追加し、「202 6 2022/10/14 10:03
- Visual Basic(VBA) 集めたシートのシート名を変更したい。 下記のコードでサブフォルダにあるファイルのSheet3を集めて 6 2022/08/23 10:38
- Excel(エクセル) セルに入力した小文字アルファベット、数字を大文字表示させるには? 3 2022/07/13 10:01
関連するカテゴリからQ&Aを探す
おすすめ情報
デイリーランキングこのカテゴリの人気デイリーQ&Aランキング
-
カタカナの小文字を大文字に変...
-
staticメソッドの継承
-
System.err. printlnとSystem.o...
-
C言語のポインターに関する警告
-
ORA-01858: 数値を指定する箇所...
-
1~100までの数字を表示したい
-
一定のスペースを空けて端を揃...
-
eclipseに記述したjavaファイル...
-
Randomメソッドの確率設定
-
実数からの小数部の取得
-
ループ処理の際、最後だけ","を...
-
IF関数でEmpty値を設定する方法。
-
変数を動的に利用するには?
-
「配列定数は、イニシャライザ...
-
1~100までの数字を表示し、か...
-
九九を横に表示する。
-
Javaで改行などが出来ないのです。
-
動的配列が存在(要素が有る)か...
-
EclipseでJava
-
getStringの値がNULLの時の処理
マンスリーランキングこのカテゴリの人気マンスリーQ&Aランキング
-
カタカナの小文字を大文字に変...
-
改行コードの置換が…
-
C#の質問
-
JAVA Servlet での全角文字判定
-
MessageDigestについて
-
文字列の指定した範囲を抽出す...
-
JAVAで全角カナチェックの方法
-
JAVAの1つの正規表現で上記Text...
-
staticメソッドの継承
-
動的配列が存在(要素が有る)か...
-
JSPやサーブレットでSystem.out...
-
ループ処理の際、最後だけ","を...
-
ORA-01858: 数値を指定する箇所...
-
IF関数でEmpty値を設定する方法。
-
ダブルクォーテーションのrepla...
-
javaで質問です。 文字列2023/2...
-
EXCEL VBA で、0から?1から?
-
C言語のポインターに関する警告
-
[JAVA]try 内の変数を外で!?
-
ダブルクォーテーションを含む...
おすすめ情報