public class Divers {
public static void main(String args[]){
String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
System.out.format(format, "FirstName", "Init.", "LastName");
System.out.format(format, "Real", "", "Gagnon");
System.out.format(format, "John", "D", "Doe");
String ex[] = { "John", "F.", "Kennedy" };
System.out.format(String.format(format, (Object[])ex));
}
}
输出:
|FirstName |Init. |LastName |
|Real | |Gagnon |
|John |D |Doe |
|John |F. |Kennedy |
我希望输出居中。如果我不使用’-‘标志,则输出将向右对齐。
我在API中找不到将文本居中的标志。
该文章有关于格式的一些信息,但没有对中心自圆其说。
我很快就搞定了。您现在可以StringUtils.center(String s, int size)
在中使用String.format
。
import static org.hamcrest.CoreMatchers.*;
import static org.junit.Assert.assertThat;
import org.junit.Test;
public class TestCenter {
@Test
public void centersString() {
assertThat(StringUtils.center(null, 0), equalTo(null));
assertThat(StringUtils.center("foo", 3), is("foo"));
assertThat(StringUtils.center("foo", -1), is("foo"));
assertThat(StringUtils.center("moon", 10), is(" moon "));
assertThat(StringUtils.center("phone", 14, '*'), is("****phone*****"));
assertThat(StringUtils.center("India", 6, '-'), is("India-"));
assertThat(StringUtils.center("Eclipse IDE", 21, '*'), is("*****Eclipse IDE*****"));
}
@Test
public void worksWithFormat() {
String format = "|%1$-10s|%2$-10s|%3$-20s|\n";
assertThat(String.format(format, StringUtils.center("FirstName", 10), StringUtils.center("Init.", 10), StringUtils.center("LastName", 20)),
is("|FirstName | Init. | LastName |\n"));
}
}
class StringUtils {
public static String center(String s, int size) {
return center(s, size, ' ');
}
public static String center(String s, int size, char pad) {
if (s == null || size <= s.length())
return s;
StringBuilder sb = new StringBuilder(size);
for (int i = 0; i < (size - s.length()) / 2; i++) {
sb.append(pad);
}
sb.append(s);
while (sb.length() < size) {
sb.append(pad);
}
return sb.toString();
}
}
问题内容: 我在Java中使用String.format()尝试模拟C语言中可用的printf()控制通道。我了解如何指定将字符串放置在20个字符,5个,2个…的字段中, 3位小数,2位等。但是,字符串在其字段中右对齐打印。 如何将弦左对齐? 这里是一个可能的输出,我想修改左对齐的例子,并在各自的领域。 *注意:请将“-”视为空白 问题答案: 与printf相同-使用格式的修饰符
函数名称:格式化字符串 函数功能:将字符串进行格式化,返回一个类似 printf 的格式化字符串 函数方法 st = string.find(str,arg) 参数 类型 必填 说明 str string 是 待格式化的字符串/模式匹配 arg - 是 任意内容,需要与 str 模式匹配支持的类型(number/string)相同 模式匹配用法 参数 类型 %c 接收一个数字, 并将其转化为 AS
我们可以使用StreamApi将上面的字符串转换为字符流吗?
我一直在准备技术面试。所以有一件事我不确定。如果我写一个例子 这是否已经防止了字符串注入?或者我必须这样写: 提前道谢!
在我的java课上,我们写了一个卡片程序,在这个程序中,你可以选择一张“秘密卡片”,最后它会告诉你你的秘密卡片是什么。我只有一个问题,那就是格式化输出。到现在为止,当它打印第一列时,第一列是偶数,但第二列和第三列不是。我的老师说要使用空格,但我试过了,不起作用。我知道有一种方法可以格式化它,但我不确定。输出看起来像这样: 我的输出代码如下: 如果你愿意,我可以发布整个代码,但我尽量不发布太多。我非
嗨,我尝试将以下Source类映射到以下Destation类。我使用了以下映射以将字符串值映射到列表字符串。它没有正确映射。我需要知道如何使用Dozer将2个字符串值映射到一个目标字符串列表中。