gpt4 book ai didi

java - java中的字符串格式,最大宽度和单词末尾的右括号

转载 作者:行者123 更新时间:2023-11-29 08:29:05 27 4
gpt4 key购买 nike

我想得到下面的格式

abc 12 [hello-wo]       this is message1
abc 12 [hello-world] this is message2
abc 10 [hello-wor] this is message2

我试过用

String format1 = "%s %d [%s-%s] %s\n";
String format2 = "%s %d [%s-%-20s] %s\n";
String a = String.format(format1,"abc","12",hello,"wo","this is message1");
System.out.print(a);

我使用两种格式(格式 1 和格式 2)得到如下结果

format1

abc 12 [hello-wda] this is message1
abc 12 [hello-world] this is message2
abc 10 [hello-wor] this is message2

format2

abc 12 [hello-wo                  ] this is message1
abc 12 [hello-world ] this is message2
abc 12 [hello-wor ] this is message1

我想要的是将参数的最后一部分对齐到相同的垂直位置,右方括号应该在第四个参数的末尾,没有任何空格。

最佳答案

这里有一个技巧可以解决您的问题:

public void formatString(String hello) {
String format1 = "%s %s %s\n";
String firstPart = String.format("%s %d [%s-%s]", "abc", 12, hello, "wo");
String a = String.format(
format1, firstPart,
String.format("%0" + Math.abs(30 - firstPart.length()) + "d", 0).replace("0", " "),
"this is message1");
System.out.print(a);
}

测试用例:

formatString("hello-wda");
formatString("hello-world");
formatString("hello-wor");

输出

abc 12 [hello-wda-wo]           this is message1
abc 12 [hello-world-wo] this is message1
abc 12 [hello-wor-wo] this is message1

诀窍是使用两种格式,第一种创建第一个部分,我们需要这部分来计算需要平衡的空间数量,第二种格式组合第一个部分+第一个和第一个之间的空间第二部分 + 第二部分。

我使用 30 作为默认值,您可以根据需要更改它。

关于java - java中的字符串格式,最大宽度和单词末尾的右括号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/49772416/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com