如何在Java中附加字符?
在这个程序中,我不仅要打印结果,还要将结果保存为字符串。我该怎么做? 另外,如何“返回”可以打印的字符串值? (此程序将删除“ad”字符串中除单词第一个字母以外的所有元音)如何在Java中附加字符?,java,string,char,append,Java,String,Char,Append,在这个程序中,我不仅要打印结果,还要将结果保存为字符串。我该怎么做? 另外,如何“返回”可以打印的字符串值? (此程序将删除“ad”字符串中除单词第一个字母以外的所有元音) 公共类remove元音{ 公共静态void main(字符串[]args){ 字符串a=“”; 删除(“删除字符串中除第一个字母以外的所有元音”); System.out.println(); } 静态字符串删除(字符串a){ 字符c='\0'; 字符串ss=“”; 字符串s=(“”+a.charAt(0)); 已发送字符串
公共类remove元音{
公共静态void main(字符串[]args){
字符串a=“”;
删除(“删除字符串中除第一个字母以外的所有元音”);
System.out.println();
}
静态字符串删除(字符串a){
字符c='\0';
字符串ss=“”;
字符串s=(“”+a.charAt(0));
已发送字符串=(“”+s);
布尔元音=假;
布尔优先=假;
系统输出打印;
对于(int i=1;i最简单的追加方法就是使用+
,如s=s+c
。这不是最好的方法,因为每次都会创建一个新字符串(因为字符串是不可变的)。相反,您可以使用StringBuilder
,例如
//Create outside of loop
StringBuilder sb = new StringBuilder();
//Append in loop
sb.append(c);
//Print when done
System.out.println(sb);
//Return the String to the caller
return sb.toString();
将s=(“”+c);
更改为s+=(“”+c);
但我建议您使用StringBuilder
,您可能需要查看一下。
在System.out.print(s);
中附加正在打印的字符串,即字符串s
到StringBuilder对象
返回从StringBuilder对象生成的字符串。
下面的代码说明了这一点
String modify(String ad) {
StringBuilder resultBuilder = new StringBuilder();
// part before loop goes here.
for(int i = 1; i <= (ad.length() - 1); i++) {
// inside loop computation
System.out.print(s); // optional
resultBuilder.append(s);
}
return resultBuilder.toString();
}
字符串修改(字符串ad){
StringBuilder resultBuilder=新建StringBuilder();
//循环之前的部分在这里。
对于(inti=1;i第一件事:添加许多不需要的内容:括号、连接时的空字符串、显式==false
、==true
,等等。。
这是不必要的长篇大论
那么关于你的问题,
s = ("" + c);
可替换为:
s+ = c;
它不再覆盖s
,而是将c
值连接到s
中存储的上一个值
您还可以使用StringBuilder
:
StringBuilder content = new StringBuilder();
for (int i = 1; i <= (ad.length() - 1); i++) {
...
c = ad.charAt(i);
if (first || !vowel) {
content.append(c);
System.out.print(content.toString());
}
...
}
StringBuilder内容=新建StringBuilder();
对于(int i=1;i)您想要打印哪个结果?我已经用System.out.print(s)打印出来了-但我希望能够保存打印出来的字符串(因为它在循环时一次打印一个字符)我还想知道如何返回整个打印字符串的值,以便在main方法中打印它;但我建议您像s=s+c选项一样使用StringBuilderI。我如何在代码中使用它,然后打印保存的字符串的结果?正如我所说的,StringBuilder方法更好,但是如果您真的想使用s=s+c,您可以简单地更改s=(“”+c);转换为s=s+c;。结果存储在s中,您可以像现在一样打印并返回结果。
StringBuilder content = new StringBuilder();
for (int i = 1; i <= (ad.length() - 1); i++) {
...
c = ad.charAt(i);
if (first || !vowel) {
content.append(c);
System.out.print(content.toString());
}
...
}