2014-10-05 47 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 

} 
相關問題