如何在Java中附加字符?

如何在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)); 已发送字符串

在这个程序中,我不仅要打印结果,还要将结果保存为字符串。我该怎么做? 另外,如何“返回”可以打印的字符串值? (此程序将删除“ad”字符串中除单词第一个字母以外的所有元音)

公共类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());
        }
         ...
    }