簡體   English   中英

從if語句和for循環返回字符串

[英]Returning a string from a if-statement and for-loop

我有以下代碼,而不是使用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即可構建字符串:

    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();
    }
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM