2014-10-05 52 views
0

我需要关于我正在处理的项目的一点建议。在特定数量的字符行上居中放置一个字符串

我正在创建一个ascii票据,它的内容基于您输入到扫描仪的内容。每行应在边界之间包含51个字符,并包含事件,日期/时间和位置。事件得到自己的路线,日期/时间和地点共享一条线。 继承人它应该看起来像

| _________________你的活动这里___________________ |

|日期和时间____________________________地点在这里|

下划线只是为了向您显示边框和字符串之间有多少空间,它并没有实际显示在程序中。

我知道你应该使用for循环来确定你的字符串前后有多少空格,但是我失去了如何完成这个任务。

回答

0

所以你的线是51个字符。我们称之为lineLength。 你想居中的字符串也有一个长度,我们称之为stringLength

您必须添加到要居中以填充整行的字符串的空格数为:lineLength - stringLength。这些空间中的一半应该放在字符串之前,其中一半应该放在字符串之后。

但是,如果字符串是48字符长呢?然后不同的是3这不是很好地除以二。因此,您需要将lineLength - stringLength的一半(向下取整)添加到前面的空格中,然后在要置入的字符串后面添加剩余的剩余部分。

这应该对你有所帮助。既然你知道如何使用for循环,我留下了两个“TODO”占位符,因此你需要用for循环代替。

public static void main(String[] args) { 
    String stringToCenter = "blablah"; 
    int lineLength = 51; 
    int stringLength = stringToCenter.length(); 

    int missingSpaces = lineLength - stringLength; 
    int paddingBefore = missingSpaces/2; 
    int paddingAfter = missingSpaces - paddingBefore; 

    // TODO: write code to print "paddingBefore" spaces 

    System.out.print(stringToCenter); 

    // TODO: write code to print "paddingAfter" spaces 

} 
相关问题