有 Java 编程相关的问题?

你可以在下面搜索框中键入要查询的问题!

java在5个插槽中打印PDF

这是我编写的示例代码

public class hello {
    static int startLine=1;
    static int endLine=6;
    static int k=1;

    public static void main(String[] args) {
        hello pd = new hello();
        do {
            pd.printPDF();
        } while(!(k <= endLine));

    }

    public void printPDF() {
        for(int count=0;count<5;count++) {
            System.out.println("The value of count....."+count);
            k++;
            System.out.println("value of k....."+k);
        }
    }
}

如果我的开始日期是9月8日,结束日期是8月23日。在两者之间,我有6个PDF文件要打印,但我必须在5个插槽中打印这些PDF文件,所以我设置的计数器是5。剩下的是第6个PDF文件,在下一个窗口中,它应该只打印第6个PDF文件,因为我们总共有6个PDF文件要打印。然而,它正在5号槽中再次打印PDF,所以有人能告诉我需要在5号槽中更改的条件,或者需要采取其他措施吗


共 (1) 个答案

  1. # 1 楼答案

    首先,考虑以下几点:

    • 根据Java约定,类名应该是CamelCase(使用Hello.java而不是hello.java
    • 类中的变量应该是private,以防止其他类访问它。默认值为package protected,在这种情况下不需要
    • 在使用static变量时,还可以使用static方法来避免类实例化(不需要new Hello
    • 考虑将变量k的创建移到方法中,因为它的作用域最小
    • 您可以使用for构造或while循环,但我认为不需要do while,因为您需要循环所有需要生成的PDF,如果没有要生成的PDF,则无需执行任何操作
    • 要使最后一个PDF具有不同的扩展名,需要将当前日期(i)和END日期传递给printPDF方法,以便计算要在该PDF上处理的条目的实际数量

    考虑到所有这些因素,我在这里向您提供代码:

    public class Hello {
    
        private static int startLine = 1;
        private static int endLine = 6;
        private static int SLOT = 5;
    
        public static void main(String[] args) {
            // Loop over the number of PDFs to generate
            int i = startLine;
            while (i <= endLine) {
                printPDF(i, endLine);
                ++i;
            };
            // Alternatively you could use a for construction
            // for (int i = startLine; i <= endLine; ++i) {
            //    printPDF();
            // };
        }
    
        public static void printPDF(int current, int end) {
            // Regular PDF slot size
            int currentSlot = SLOT;
            if (current == end) {
                // Slot size for the last entry
                currentSlot = 2;
            }
            System.out.println("Treating PDF " + current);
            for (int count = 0; count < currentSlot; count++) {
                System.out.println("- The value of count....." + count);
            }
        }
    }