2017-06-17 186 views
-2

我想返回一个字符串,以便它不打印在函数,而是在主类。如何连接一个字符串返回到主要在JAVA

我试图连接出来的每个字符上的字符串,以便字符串不断增长,具体取决于输入的数字。

public class Main { 

    public static void main(String[] args) { 
     Diamond print = new Diamond(); 
     output = print.print(5); 
     System.out.print(output); 
    } 
} 
class Diamond { 
    public static String print(int n) { 
     String concat = ""; 

     if(!(n % 2 == 0)) { 
      for (int i = 1; i < n; i += 2) { 
       for (int k = n; k >= i; k -= 2) { 
        System.out.print(" "); 
        concat = concat.(" ");//what i am trying to do :(
       } 
       for (int j = 1; j <= i; j++) { 
        System.out.print("*"); 
        concat = concat.("*"); 
       } 
       concat = concat.("\n"); 
       System.out.println(); 
      }// end loop 

      for (int i = 1; i <= n; i += 2) { 
       for (int k = 1; k <= i; k += 2) { 
        System.out.print(" "); 
       } 
       for (int j = n; j >= i; j--) { 
        System.out.print("*"); 
       } 
       System.out.println(); 
      }// end loop 
     } 
     return concat; 
    } 
} 
+0

而你的问题是? –

+0

将'String concat'改为'StringBuilder sb',追加到'sb.append(...)',并在最后返回'sb.toString()'。 – janos

+0

@JoeC如何连接一个字符串以返回到JAVA主要 – learningbyexample

回答

0

使用concat()方法

String str = ""; 
str = str.concat("blabla"); 

但因为你的变量名是那么Concat的这样做:,

String concat = ""; 
concat = concat.concat("blabla"); 

但是使用StringBuffer的比较好..

StringBuffer sb = new StringBuffer(); 

sb.append("blabla"); 

then ... for the output ,通过写入返回字符串:sb.toString();

+0

'StringBuilder'在这种情况下推荐使用,而不是'StringBuffer'。实际上'StringBuffer'是很少需要的。请参阅其[javadoc]中描述的最后一段(https://docs.oracle.com/javase/7/docs/api/java/lang/StringBuffer.html) – janos

相关问题