字符串格式化特定宽度

时间:2015-08-22 20:57:32

标签: c# string

我有一些字符串,我希望这样格式化:

XXXXX : YYYY

重点是XXXXX最多5个字符,YYYY最多7个字符。 YYYY需要与右侧对齐,XXXXX与左侧对齐。我真的很困惑,不知道如何继续这个,有人可以帮助我吗?

我应该制作2个不同的字符串,XXXX和YYYY,左/右对齐,然后将它们连接成1个字符串,并且需要常量长度?

2 个答案:

答案 0 :(得分:3)

使用Composite Formatting

可以轻松完成
user_form = UserForm(request.POST or None, instance=request.user)
user_extend_form = UserExtendForm(request.POST or None, instance=request.user.userextend)

当然,当您显示此输出时,只有使用固定间距字体才有意义。对于比例字体,空格字符不如其他字符宽,因此您的字符串永远不会正确对齐。

因此,如果您真的想要使用比例字体在视频上显示此数据,最好使用提供Columns概念的控件,如DataGridView,ListView等。

答案 1 :(得分:-3)

你如何输入XXXXX和YYYY?有两个不同的字符串?然后你可以在substring()之后使用concat:

var obj = {
    data : [
        ["1", 20],
        ["1", 24],
        ["1", 2],
        ["1", 32],
        ["1", 23],
        ["1", 80],
        ["2", 3],
        ["2", 32],
        ["2", 34],
        ["2", 36],
        ["2", 36]]
};

function group(data) {
    var mapObj = data.reduce(function (map, item) { // create a map of the key: [values]
            var key = item[0];
            var value = item[1];
            map[key] && map[key].push(value) || (map[key] = [value]);
            return map;
        }, {});

    return Object.keys(mapObj).map(function (key) { // map the keys and values back to arrays
        return [key, mapObj[key]];
    });
}

var newObj = {
    data: group(obj.data)
};