Python - 如何用右侧和左侧的空格填充字符串?

时间:2013-02-08 16:13:52

标签: python string

我有两个场景,我需要在左右两个方向(在不同的情况下)填充具有一定长度的空格的字符串。例如,我有字符串:

TEST

但我需要创建字符串变量

_____TEST1

这样实际的字符串变量长度为10个字符(在这种情况下由5个空格引导)。 注意:我正在显示下划线来表示空格(否则,降价在SO上看起来不正确)。

我还需要弄清楚如何反转它并从另一个方向填充空白:

TEST2_____

是否有任何字符串帮助函数可以执行此操作?或者我需要创建一个字符数组来管理它吗?

另请注意,我正在尝试将字符串长度保持为变量(我在上面的示例中使用了10的长度,但我需要能够更改它)。

任何帮助都会很棒。如果有任何python函数来管理它,我宁愿避免从头开始写一些东西。

谢谢!

2 个答案:

答案 0 :(得分:97)

您可以查看我相信的str.ljust and str.rjust

替代方法可能是使用format方法:

>>> '{:<30}'.format('left aligned')
'left aligned                  '
>>> '{:>30}'.format('right aligned')
'                 right aligned'
>>> '{:^30}'.format('centered')
'           centered           '
>>> '{:*^30}'.format('centered')  # use '*' as a fill char
'***********centered***********'

答案 1 :(得分:1)

Python3 f字符串用法

...

public abstract class Connection implements Runnable {

...

@Override
public void run() {
    while(isConnected){
        try {
            ByteArray data = new ByteArray();
            while(this.in.available() > 0){
                byte[] read = this.read();
                if (read != null) {
                    data.add(read);
                }
            }
            if(data.getBytes() != null){
                callback.run(data);
            }
        } catch (Exception e){
            e.printStackTrace();
            break;
        }
    }
}

...

private byte[] read() throws Exception{
    byte[] bytes = new byte[this.in.available()];
    int read = this.in.read(bytes);
    if (read <= 0) return null; // or return null, or something, read might be -1 when there was no data.
    return bytes; // just returning the read bytes is fine. you don't need to copy.
}

l = "left aligned"
print(f"{l.ljust(30)}")

r = "right aligned"
print(f"{r.rjust(30)}")

c = "center aligned"
print(f"{c.center(30)}")