我不允许使用replace()方法,我基本上必须有一部分程序来执行此操作:
- 要求用户键入要操作的句子。 - 然后要求用户输入要替换的字符(即" e"来自"你好")。 - 然后问他们想要用哪个字符代替。
完成所有这些后,它会将操纵的字符串输出到屏幕。
实施例
我基本上可以使用以下代码执行此操作:
int count = 1;
char replaceAll = 'a';
char newChar = 'b';
Scanner keyboard = new Scanner(System.in);
System.out.println("Enter the string to be manipulated");
String sentence = keyboard.nextLine();
int count = 0;
System.out.println("Enter the character to replace");
replaceAll = keyboard.nextLine().charAt(0);
System.out.println("Enter the new character");
newChar = keyboard.nextLine().charAt(0);
System.out.print("The new sentence is: ");
for(int c = 0; c < sentence.length(); c++){
if(sentence.charAt(c) == replaceAll)
System.out.print(newChar);
else
System.out.print(sentence.charAt(c));
主要问题:唯一的问题是,这不会将操纵的字符串保存为新字符串。它只会以正确的顺序打印字母进行输出(它一次打印一个字符,而不是一个字符串)。我需要将被操纵的字符串(即Hi thlrl)保存为新字符串,以便我可以在之后对该新字符串进行更多操作。
答案 0 :(得分:1)
您可以根据char[]
大小声明sentence
,然后循环填充它。
char[] ch = new char[sentence.length()];
for(int c = 0; c < sentence.length(); c++)
{
if(sentence.charAt(c) == replaceAll)
{
System.out.print(newChar);
ch[c]=newChar;
}
else
{
System.out.print(sentence.charAt(c));
ch[c]=sentence.charAt(c);
}
}
其他可能的解决方案是,您可以使用char[]
toCharArray()
char[] ch = sentence.toCharArray();
for(int c = 0; c < sentence.length(); c++)
{
if(sentence.charAt(c) == replaceAll)
{
ch[c]=newChar;
}
}
并使用String
创建char[]
。
String mystring = new String(ch);
答案 1 :(得分:1)
如果它是Stringbuffer / StringBuilder,那么更简单的是使用setCharAt
StringBuilder sentenceStr = new StringBuilder(sentence);
sentenceStr.setCharAt(c, newChar);
答案 2 :(得分:0)
您可以使用split
将字符串剪切成片段,每次出现要替换的字符时,然后join
将其重新组合在一起。例如,
String.join("l", "Hello there".split("e", -1));
评估为"Hllllo thlrl"
。
请注意,-1很重要 - 它会阻止最终元素被丢弃,如果它是您要分割的那个元素。
答案 3 :(得分:0)
你可以初始化一个空字符串,当你遍历你的句子字符串时,你可以像这样建立一个新的空字符串:
String result = "";
for(int c = 0; c < sentence.length(); c++) {
if(sentence.charAt(c) == replaceAll) {
result += newChar;
} else {
result += sentence.charAt(c);
}
}
System.out.println(result);
答案 4 :(得分:0)
/* char 'o' 替换为 char 'd' 不带替换功能 */
String oldString = "welcome mojo";
String[] StringArray = oldString.split("");
String newString = "";
int count = StringArray.length;
for (int i = 0; i < count; i++) {
if (StringArray[i].equalsIgnoreCase("o")) {
StringArray[i] = "d";
}
newString = newString + StringArray[i];
}
System.out.println(newString);