Java 将字符串中的元音替换为其后继元音示例snow将成为snpw
我被问到一个问题,其中一个元音必须替换为前置元音。示例:Java 将字符串中的元音替换为其后继元音示例snow将成为snpw,java,Java,我被问到一个问题,其中一个元音必须替换为前置元音。示例:“snow”应作为“snpw” import java.util.*; 班级发誓 { 公共静态void main(字符串参数[]) { 扫描仪输入=新扫描仪(系统输入); System.out.println(“请输入字符串”); 字符串str=in.nextLine(); 字符b; StringBuilder a=新的StringBuilder(str); 对于(int i=0;i您不应该打印值从未更改的str 尝试打印StringBuf
“snow”
应作为“snpw”
import java.util.*;
班级发誓
{
公共静态void main(字符串参数[])
{
扫描仪输入=新扫描仪(系统输入);
System.out.println(“请输入字符串”);
字符串str=in.nextLine();
字符b;
StringBuilder a=新的StringBuilder(str);
对于(int i=0;i您不应该打印值从未更改的str
尝试打印StringBuffer的
对象,因为它包含替换项
System.out.println("New STring is:"+a.toString());
多亏了@Blip,我没有注意到另一个问题。只有当输入是元音时,才向StringBuffer的对象添加字符
以下是您的if测试的外观:
if((str.charAt(i)=='a')||(str.charAt(i)=='e')||(str.charAt(i)=='i')||(str.charAt(i)=='o')||(str.charAt(i)=='u'))
{
b = str.charAt(i);
b +=1;
char temp;
temp = b;
b = str.charAt(i);
a.setCharAt(i,temp);
continue;
}
a.setCharAt(i, str.charAt(i));
输入输出
aeiou
->bfjpv
这就是说,这里是对代码的修改,更易于编写和理解
Scanner in = new Scanner(System.in);
System.out.println("Enter String pls:");
String str = in.nextLine();
StringBuilder output = new StringBuilder();
for (char c : str.toCharArray()){
if ("aeiou".contains(""+c)){
output.append((char)(c+1));
} else {
output.append(""+c);
}
}
System.out.println(output.toString());
你需要提供更多信息才能开始。到底出了什么问题?你有错误输出吗?请提供尽可能多的有用信息,否则你的问题可能会因懒惰而被否决(祝你考试顺利!)顺便问一下,它是前导词还是后继词?因为b+=1
取后继词:o
变成p
,就像在你的例子中,但不是在你的文本中。另外,定义“元音”。是“y”
a元音?不,y不是元音,它是成功的。您的解决方案有问题。如果原始字符串是abcd,则输出为b,或者如果是映射,则输出为b@Blip为什么这会是个问题?这正是OP想要解决的问题do@Blip非常感谢,我改变了答案。@Smittey就像问题itsel一样如果OP希望snow变成snpw,但是如果输出StringBuffer
变量a.toString()
,而不更改代码,那么输出将只是pyassin,你能解释一下逻辑吗?因为我很难理解它
Scanner in = new Scanner(System.in);
System.out.println("Enter String pls:");
String str = in.nextLine();
StringBuilder output = new StringBuilder();
for (char c : str.toCharArray()){
if ("aeiou".contains(""+c)){
output.append((char)(c+1));
} else {
output.append(""+c);
}
}
System.out.println(output.toString());