簡體   English   中英

刪除最后一個新行字符串

[英]Deleting last new line string

所以我已經嘗試了很多東西來擺脫代碼中的最后一個換行符。 它應該在每次遞歸調用之后打印一個新行,除了最后一個。 有任何想法嗎?

public static boolean solve(double target, ArrayList<Double> numbers)
{
    String print = "";
    String newPrint = "";
    double compare = 0;

    boolean done = false;

    for (double num : numbers)
    {
        if (!done)
        {

            ArrayList<Double> remaining = new ArrayList<Double>(numbers);

            remaining.remove(num);

            if (target == num)
            {
                done = true;

            }
            else
            {

                done = solve(target + num, remaining);
                if (done)
                {
                    print += ((int) target + (int) num) + " " + "-" + " " + (int) num + " "
                            + "="
                            + " "
                            + ((int) target + "\n");
                }
                else
                {

                    done = solve(target - num, remaining);
                    if (done)
                    {
                        print += ((int) target - (int) num) + " " + "+" + " " + (int) num + " "
                                + "=" + " "
                                + ((int) target + "\n");
                    }
                    else
                    {

                        done = solve(target * num, remaining);
                        if (done)
                        {
                            print += ((int) target * (int) num) + " " + "/" + " " + (int) num
                                    + " " + "=" + " "
                                    + ((int) target + "\n");
                        }
                        else
                        {

                            done = solve(target / num, remaining);
                            if (done)
                            {
                                print += ((int) target / (int) num) + " " + "*" + " "
                                        + (int) num
                                        + " " + "="
                                        + " " + ((int) target + "\n");
                            }
                        }
                    }
                }

            }
        }

    }

    System.out.print(print);

    return done;
  }
}

例如:

void recursiveF(...) {
    if ... {
        recursiveF(...);
        println();
    }
    ...
}

結果是一個字符串但你不想要最后一個字符,所以刪除它:

print = print.substring(0, print.length()-1);

使用trim()方法。 它將從字符串的開頭和結尾刪除空格,換行符等。

System.out.print( print.trim() );

打印之前的新行字符。

遞歸函數應該做的第一件事是打印換行符。 這樣就可以將奇數情況從最后一個函數調用轉移到第一個調用,該調用不應該在前面添加一個新行。

你可以在遞歸方法的簽名中添加一個參數String prepend = "" ,在第一次調用時它是空的,所有進一步的調用都將它設置為String prepend = "\\n" 然后你可以打印prepend而不用打擾它的內容。

暫無
暫無

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

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