排列字符

Line up Characters

我有一个由两个数字组成的组合框;英寸和毫米。目前它看起来很可怕。我想知道这里的一些大师是否有衬字符“|”或者至少让它变得更好?

一些背景信息,英寸数和毫米数是单独的字符串,我将它们附加在一起,如下所示:

Size(in) + " (In) | " + Size(mm) + " (mm)"

使用 String.PadRight(i);String.PadLeft(i);,其中 i 是编号。 "fill":

的空格

示例:

// Just to simplify a little, create vars:
var inches = Size(in) + " (In) ";
var mm = " + Size(mm) + " (mm)";

var formatted = inches.PadRight(15) + "|" + mm.PadLeft(15); 

填充值使用 15 的输出示例(显然,您可以根据需要进行调整):

43 inches      |         123 cm
445554 inches  |       12345 cm

可能最简洁的方法是将每个数字格式化为至少有 3 位小数以表示英寸。但是,这仍然不是完美的,因为字母字体宽度不是完美的,要解决这个问题,您需要使用等宽字体。

要格式化为 3dp,您可以使用以下内容

String.Format("{0:f3}", Size(in)) + " (In) | " + Size(mm) + " (mm)"

由于您有一些小数点前 2 位的值,因此您始终可以使用 PadLeft 来对齐这些值,但是如果没有等宽字体,这并不总是有效..

String.Format("{0:f3}", Size(in)).PadLeft(5, ' ') // or (5, '0')