-6

文字の折り返しを使用して、ユーザー入力に基づいて文字列を変更する方法を見つけようとしています。文字列が「ボブは建物を建てるのが大好き」で、ユーザーが「b」と入力した場合、小文字と大文字の bs の両方を出力に変更する必要があります。

これに追加する必要があるのは次のとおりです。

 System.out.print("\nWhat character would you like to replace?");
 String letter = input.nextLine();
 System.out.print("What character would you like to replace "+letter+" with?");
 String exchange = input.nextLine();
4

4 に答える 4

3

どうですか:

myString = myString.replace(letter,exchange);

編集: myString は、文字を置き換える文字列です。

文字はコードから取得され、置き換えられる文字です。

exchange もコードから取得されます。これは、文字が置き換えられる文字列です。

もちろん、大文字と小文字に対してこれをもう一度行う必要があるため、次のようになります。

myString = myString.replace(letter.toLowerCase(),exchange);
myString = myString.replace(letter.toUpperCase(),exchange);

入力した文字が小文字または大文字の場合をカバーするため。

于 2012-09-13T06:22:25.653 に答える
1

以前の返信について何が得られないのかわかりませんが、これはそれらをコードに結び付けます。

 String foo = "This is the string that will be changed"; 
 System.out.print("\nWhat character would you like to replace?"); 
 String letter = input.nextLine(); 
 System.out.print("What character would you like to replace "+letter+" with?"); 
 String exchange = input.nextLine();
 foo = foo.replace(letter.toLowerCase(), exchange); 
 foo = foo.replace(letter.toUpperCase(), exchange); 

 System.out.print("\n" + foo); // this will output the new string 
于 2012-09-13T06:37:30.427 に答える
1

単純化したアプローチは次のようになります。

String phrase = "I want to replace letters in this phase";
phrase = phrase.replace(letter.toLowerCase(), exchange);
phrase = phrase.replace(letter.toUpperCase(), exchange);

編集: 以下の提案に従って toLowerCase() を追加しました。

于 2012-09-13T06:24:19.107 に答える
0

チェックreplace方法:

public String replace(char oldChar, char newChar)

この文字列内のすべての oldChar を newChar に置き換えた新しい文字列を返します。

詳細については、[ String#replace](http://docs.oracle.com/javase/6/docs/api/java/lang/String.html#replace(char, char))を参照してください。

編集:

class ReplaceDemo
{
    public static void main(String[] args)
    {
        String inputString = "It is that, that's it.";
        Char replaceMe = 'i';
        Char replaceWith = 't';

        String newString = inputString.Replace(replaceMe.toUpperCase(), replaceWith);
        newString = newString.Replace(replaceMe.toLowerCase(), replaceWith);
    }
}

それはあなたの問題を解決しますか?

于 2012-09-13T06:24:33.290 に答える