我有两个场景,我需要在左右两个方向(在不同的情况下)填充具有一定长度的空格的字符串。例如,我有字符串:
TEST
但我需要创建字符串变量
_____TEST1
这样实际的字符串变量长度为10个字符(在这种情况下由5个空格引导)。 注意:我正在显示下划线来表示空格(否则,降价在SO上看起来不正确)。
我还需要弄清楚如何反转它并从另一个方向填充空白:
TEST2_____
是否有任何字符串帮助函数可以执行此操作?或者我需要创建一个字符数组来管理它吗?
另请注意,我正在尝试将字符串长度保持为变量(我在上面的示例中使用了10的长度,但我需要能够更改它)。
任何帮助都会很棒。如果有任何python
函数来管理它,我宁愿避免从头开始写一些东西。
谢谢!
答案 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)}")