2015-12-14 79 views
1

我很想知道在網格中打印文本的配方佈局格式或表格佈局格式,其中輸入文本在列|行類型佈局中垂直對齊 - (它可以是任何語言,我有興趣在配方)以對齊的網格格式打印純文本

例如假設我有一個字符串數組代表我行

String[] s = new String[]{"Adele","Taylor","Katty","Beyonce","Mariah"}; 
String[] s1 = new String[]{"Java","Android","Ruby","Pascal","Python"}; 
String[] s2 = new String[]{"Ronaldo","Ibrahimovic","Tevez","Rooney","Ronaldhino"}; 
String[] s3 = new String[]{"Stackoverflow","Facebook","Twitter","Amazon","Scrybasms"}; 

,我需要打印到控制檯/文本文件/ etc表看起來像這樣的格式

Adele     Taylor    Katty      Beyonce        Mariah 
Java     Android    Ruby       Pascal         Python 
Ronaldo    Ibrahimovic   Tevez      Rooney         Ronaldhino 
Stackoverflow   Facebook    Twitter      Amazon         Scrybasms          

但您可以看到它們未正確對齊;在GUI應用程序,這是它的外觀 enter image description here

,並在我的日食

enter image description here

他們都有不同的路線,我不知道爲什麼,所以我想實現的一般更好的方法是什麼我想要。感謝

編輯

謝謝大家,我已經用最詞彙出現「MonoSpace無」解決它既評論者和回答者。 :)

enter image description here

+2

這是不可能的,因爲你不知道使用哪種字體來顯示文本(對於文本文件,它取決於顯示它的程序,甚至程序設置 - 你已經在問題中已經演示過了)。在gui庫的情況下,您可以設置字體或確定字體,並使用它的屬性來測量文本寬度(沒有擔保甚至可以使用給定字體精確對齊(除了等寬字體)。) – fabian

+1

I在這種情況下,使用'Table'更合適。 –

+0

@fabian我現在正在嘗試它會讓你知道最新情況,謝謝,如果我能得到它的工作,將再次感謝你;希望你的前三個單詞不是意味着他們的聲音:) – Elltz

回答

2

eclipse,它的單寬字體,喜歡這裏:

aaaa bbbb cccc dddd 
eeee ffff gggg hhhh 
iiii jjjj kkkk llll 

在您的應用程序,它不是單聲道空間字體,喜歡這裏:

aaaa bbbb cccc

dddd eeee ffff

GGGG HHHH IIII

JJJJ KKKK LLLL

所以,現在你明白爲什麼它在Eclipse正確對齊,但在你的應用程序失敗。

+0

謝謝你,你,你非常歡迎先生,謝謝 – Elltz

+0

@Elltz歡迎:)如果沒有更多的問題在這裏,最好將其中一個答案設置爲公認。 – Sayakiss

1

使用單間隔字體並將文本與空格對齊。

或者爲每一列文本使用單獨的UI元素(文本框)。然後,每一列將獨立於其他文本在本地對齊它的文本。

+0

嗯,這將是昂貴的先生,你不覺得?如果我要將整個節點作爲文本顯示,那麼它需要像一個功能一樣?例如像在我的文本顯示等找到東西等任何提示先生? – Elltz

+0

如果要擴展搜索等功能,可以定義由幾個文本框(列)組成的自己的文本元素,然後將感興趣的功能轉發給每個內部文本框。您還可以使用此自定義元素來管理文本(即插入元素時,不要只是按下該列中的文本,而是重新排列所有元素以使其看起來像您所希望的那樣)。 – Sorin

+0

推出自己的自定義元素總是更昂貴。但是,如果默認的沒有做你想要的,你可以接受它或實現你自己的(或僱用某人爲你做)。 – Sorin

1

大多數語言都有一個pad功能,它需要一個字符串並用空格填充,直到達到所需的長度。如果他們不支持這一點,他們至少支持C字符串格式,它允許諸如「%1 $ 10s」之類的東西(這將在字符串的前面放置10個空格)。

這是一種更容易的方法來將東西填充到特定的長度,但它仍然需要單色空間字體才能看起來正確。

+0

謝謝先生。是非常有幫助的 – Elltz