java控制臺(tái)輸出進(jìn)度條怎么實(shí)現(xiàn)

小億
248
2024-05-30 11:44:13
欄目: 編程語言

在Java控制臺(tái)輸出進(jìn)度條可以通過使用控制臺(tái)打印來實(shí)現(xiàn)。以下是一個(gè)簡(jiǎn)單的示例代碼:

public class ProgressBar {
    public static void main(String[] args) {
        int total = 100;
        for (int i = 0; i <= total; i++) {
            int progress = (int) ((double)i/total * 100);
            System.out.print("\rProgress: [" + repeat("#", progress) + repeat(" ", 100-progress) + "] " + progress + "%");
            try {
                Thread.sleep(100); // 模擬任務(wù)執(zhí)行時(shí)間
            } catch (InterruptedException e) {
                e.printStackTrace();
            }
        }
    }

    public static String repeat(String str, int times) {
        StringBuilder sb = new StringBuilder();
        for (int i = 0; i < times; i++) {
            sb.append(str);
        }
        return sb.toString();
    }
}

在上面的代碼中,我們定義了一個(gè)ProgressBar類,其中的main方法用來輸出進(jìn)度條。首先設(shè)置總的任務(wù)數(shù)量為100,然后使用一個(gè)循環(huán)來模擬任務(wù)執(zhí)行的進(jìn)度。在循環(huán)中,我們計(jì)算當(dāng)前進(jìn)度百分比并輸出進(jìn)度條,然后使用Thread.sleep來模擬任務(wù)執(zhí)行時(shí)間。repeat方法用來生成指定數(shù)量的重復(fù)字符串,這里用來生成進(jìn)度條中的#和空格。最后通過控制臺(tái)的\r換行符來實(shí)現(xiàn)動(dòng)態(tài)更新進(jìn)度條。

運(yùn)行以上代碼,你會(huì)在控制臺(tái)看到類似如下的輸出:

Progress: [####################                    ] 50%

這個(gè)例子給出了一個(gè)基本的進(jìn)度條實(shí)現(xiàn),你可以根據(jù)自己的需求來擴(kuò)展和定制進(jìn)度條的樣式和功能。

0