【问题标题】:Returning a string from a if-statement and for-loop从 if 语句和 for 循环返回字符串
【发布时间】:2015-01-15 00:33:17
【问题描述】:

我有以下代码,而不是使用 System.out.println() 方法,我需要返回一个包含星号和减号的字符串,就像下面的代码一样。

基本上,我需要将星号和减号包含在实际的返回字符串本身中,而不是只返回最后的“”!

我对 Java 很陌生,不知道该怎么做。

如果有任何建议,我将不胜感激。

public static String starMinusLine(int stars, int minuses){

            if(minuses ==1){
            for (int j= 0; j< stars; ++j){
                System.out.print("*");
            }
            for (int i = 0; i < (minuses); ++i){
                System.out.print("-");
            }
        }

            if (minuses % 2 == 0){
            for (int i = 0; i < (minuses*0.5); ++i){
                System.out.print("-");
            }
            for (int j= 0; j< stars; ++j){
                System.out.print("*");
            }
            for (int k=0; k < (minuses*0.5); ++k){
                System.out.print("-");
            }
        }
            if (minuses % 2 == 1 && minuses != 1){
            for (int i = 0; i < ((minuses*0.5)-0.5); ++i){
                System.out.print("-");
            }
            for (int j= 0; j< stars; ++j){
                System.out.print("*");
            }
            for (int k=0; k < ((minuses*0.5)); ++k){
                System.out.print("-");
            }   
        }
        return "";  
    }

【问题讨论】:

  • 使用StringBuilder 附加输出并在最后返回StringBuilder.toString()
  • 有时,当您是初学者时,可能很难找到相关的 API,因为您不知道要搜索什么词。希望通过StringBuilder 提示,OP 将在几分钟内发布他自己的答案。

标签: java string if-statement for-loop return


【解决方案1】:

只需使用 StringBuilder 随时构建字符串:

    public static String starMinusLine(int stars, int minuses) {
        StringBuilder sb = new StringBuilder();

        if (minuses == 1) {
            for (int j = 0; j < stars; ++j) {
                sb.append("*");
            }
            for (int i = 0; i < (minuses); ++i) {
                sb.append("-");
            }
        }

        if (minuses % 2 == 0) {
            for (int i = 0; i < (minuses * 0.5); ++i) {
                sb.append("-");
            }
            for (int j = 0; j < stars; ++j) {
                sb.append("*");
            }
            for (int k = 0; k < (minuses * 0.5); ++k) {
                sb.append("-");
            }
        }
        if (minuses % 2 == 1 && minuses != 1) {
            for (int i = 0; i < ((minuses * 0.5) - 0.5); ++i) {
                sb.append("-");
            }
            for (int j = 0; j < stars; ++j) {
                sb.append("*");
            }
            for (int k = 0; k < ((minuses * 0.5)); ++k) {
                sb.append("-");
            }
        }
        return sb.toString();
    }
}

【讨论】:

  • 我什至不知道 StringBuilder 方法!谢谢你。
猜你喜欢
  • 2012-04-18
  • 2013-02-06
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2018-03-07
  • 1970-01-01
  • 2014-07-18
  • 1970-01-01
相关资源
最近更新 更多