簡體   English   中英

如何使用String.Format()在C#中正確對齊字符串?

[英]How to properly align strings in C# using String.Format()?

伙計們,很抱歉在這個網站上充斥着一個無聊的問題,但是即使在閱讀了有關C#的文檔並查看了他們的示例之后,我似乎也無法找到對此的解釋。

即,我有這樣的代碼:

        String s = "Hello";
        String n = "World";
        String s1 = "LALALALALALALA";
        String n1 = "heyy";
        String s2 = "sffsdfsfdsfsd";
        String n2 = "dsfsdfdsfdsfsdsd";

        String z = String.Format("{0,-20}{1,-10}", s, n);
        String z1 = String.Format("{0,-20}{1,-10}", s1, n1);
        String z2 = String.Format("{0,-20}{1,-10}", s2, n2);

(此代碼只是為了測試)

現在,當我使用時:

        Console.WriteLine(z);
        Console.WriteLine(z1);
        Console.WriteLine(z2);

將輸出寫入控制台,它按我的預期工作; 20個空格分配給字符串參數{0},接下來的空格分配給字符串參數{1}。 但是,當我以某種形式運行完全相同的代碼時(作為MessageBox輸出,甚至是TextBox文本,我都會得到混亂的結果。參數{0}可以,但是參數{1}的起始位置與結尾之間似乎是隨機的距離) {0}。

有這種情況發生的原因嗎? 我該如何解決?

感謝您的任何答案!

這取決於字體。 某些字體的所有字母寬度都不相同。 如果您嘗試使用Consolas,它將可以正常工作。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM