Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/java/303.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/0/assembly/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Java 换行并分页打印机的输入字符串_Java_String_Printing - Fatal编程技术网

Java 换行并分页打印机的输入字符串

Java 换行并分页打印机的输入字符串,java,string,printing,Java,String,Printing,以下是问题陈述: 重新构造打印机的字符串。打印机只能在一页上打印40行,一页只能打印20行。页面底部应包含“第X页”,其中X是页码。页码从1开始 以下是我目前的代码: import java.lang.String; public class Problem11 { /** * Creates a new instance of <code>Problem11</code>. */ public Problem11() {

以下是问题陈述:

重新构造打印机的字符串。打印机只能在一页上打印40行,一页只能打印20行。页面底部应包含“第X页”,其中X是页码。页码从1开始

以下是我目前的代码:

import java.lang.String;

public class Problem11
{
    /**
     * Creates a new instance of <code>Problem11</code>.
     */
    public Problem11()
    {
    }
    public static void main(String[] args)
    {
        String phrase = "The quick brown fox jumps over the lazy dog who bit him on the butt.";
        //String phrase = "1234567890123456789012345678901234567890123456789012345678901234567890";
        int max_lines = 20;
        int max_characters = 40;
        int page_num = 0;
        int carriage_ret = 0;
        int start_position = 10;
        int end_position = 0;
        String printline = "";

        do
        {
            start_position = carriage_ret;
            end_position = start_position + max_characters;
            carriage_ret = findSpace(phrase, start_position, end_position) + start_position;

            System.out.println("You are on line 37.");

            if ( carriage_ret > phrase.length())
            {
                carriage_ret = phrase.length();
                break;
            }
            //else
            //{
            //    carriage_ret = findSpace(phrase, start_position, end_position) + start_position;
            //}

            printline = phrase.substring(start_position, carriage_ret);
            System.out.println(printline);

            System.out.println(carriage_ret + "");

            if ( start_position > phrase.length())
            {
                break;
            }
        } while (true);

    }

    private static int findSpace( String phrase, int start, int end )
    {
        String tempString = " ";
        int result = 0;

        if ( end > phrase.length())
        {
            end = phrase.length();
          }

          tempString = phrase.substring(start,end);

          result = tempString.lastIndexOf(" ");
          System.out.println(tempString);

          return result;
    }
}
它可以编译,但我没有得到要求的结果。
我得到了一个无限循环,整个短语在第40个字符处没有被分解。

我认为你有一个无限循环的原因是这行代码:

        } while (true);
您在40个字符后没有获得回车符的原因似乎是您正在执行:

System.out.println(tempString);

在您的
findSpace
方法中,它没有考虑40个字符限制之前最后一个空格的计算位置。

请用您的结果记录问题。我得到的是一个无限循环,整个短语在第40个字符处没有分解。而且拆分必须打开空白。我在你的评论中编辑过,通常你应该在问题中加入额外的信息,而不是依赖于评论。我还添加了相关编程语言中出现的标记。对于包含此类代码的问题,您应该始终为编程语言添加标记。