根据位置格式化java中的字符串

时间:2012-09-06 23:36:49

标签: java

我有一个包含很多单词的字符串 必须根据位置显示单词。

示例,

   String str = "Australia Canberra Adellide ";

上面的字符串应为,

澳大利亚应该从0开始到20结束

堪培拉应该从20开始,到30结束

Adellide应该从30开始并以50结束

我将在jtextarea中显示

java中是否有可用的格式化程序?或者应该使用填充?

3 个答案:

答案 0 :(得分:1)

这个例子难以理解:堪培拉和'Adellide'的长度是一样的,所以堪培拉怎么只有10个字符,但Adellide得到20个?

无论如何,你能使用formatter吗?如果需要,您可以split包含列表的输入字符串。

答案 1 :(得分:1)

喜欢这个吗?

String str = String.format("%20s%10s%20s", "Australia", "Canberra", "Adellide");

或者如果你想要左对齐:

String str = String.format("%-20s%-10s%-20s", "Australia", "Canberra", "Adellide");

答案 2 :(得分:1)

您可以使用%-ns格式说明符填充String.format()字符串。

String s = String.format("%-20s%-10s%-20s","Hello","to","you.");
// "Hello               to        you.                "

如果你想在各个字母之间插入字母,你最好的选择可能是一个简单的正则表达式(即s.replaceAll(".", "$0 "))。