如果用户输入随机字母,如何更改给定字符串中的所有字母?

时间:2012-09-13 06:17:10

标签: java

我试图弄清楚如何使用字符包装来根据用户输入改变字符串。如果字符串是'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 个答案:

答案 0 :(得分:3)

怎么样:

myString = myString.replace(letter,exchange);

编辑: myString是您要替换字母的字符串。

信件取自您的代码,这是要替换的信件。

交换也取自您的代码,它是要替换的字母。

当然,对于大写字母和小写字母,您需要再次执行此操作,因此它将是:

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

为了涵盖输入的字母是小写或大写的情况。

答案 1 :(得分:1)

一种简单的方法是:

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

编辑:根据以下建议添加toLowerCase()。

答案 2 :(得分: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 

答案 3 :(得分: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);
    }
}

这能解决您的问题吗?