-6

我试图弄清楚如何使用字符换行来根据用户输入来改变字符串。如果字符串是“Bob 喜欢建造建筑物”并且用户输入“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 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 回答
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 回答
0

检查replace方法:

public String replace(char oldChar, char newChar)

返回一个新字符串,该字符串是用 newChar 替换此字符串中所有出现的 oldChar 所产生的。

有关详细信息,请参阅 [ 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 回答