[英]String.format() format for last characters of a string
是否有可能设置String.format参数,以便使用输入的最后N
字符,即:
String s = String.format("%1${N}s", "abcdef");
所以s
包含"def"
? 这在您可以说的脚本语言中很常见
exp = "abcdef"
s = exp[-3]
编辑
好的,所以我不想格式化我的数据并在将它放入String#format
函数时处理它。 这就是格式描述的重点。 这种格式描述代表了一种模块化形式,如果我必须预先格式化我的输入数据,尽管有一个格式化程序,这种形式会大打折扣......
不幸的是,即使是现在(y2017) Java 8 Formatter也不支持“substring”。
你可以试试:
Freemarker和slicing (substrings)
:
// string 'abcde', evaluates to "bcd" <#assign s="abcde"> ${s[1..3]}
Spring Expression Language(SpEL)和expressions methods
:
// string literal 'abcde', evaluates to "bcd" ExpressionParser parser = new SpelExpressionParser(); String sub = parser.parseExpression("'abcde'.substring(2, 4)").getValue(String.class);
String#substring(int index)
与脚本示例的作用相同:
String a = "abcdef";
String b = String.format("%s", a.substring(3));
我不清楚String.format
是否具有这种功能。 但是使用String
功能,可以实现。
int n = 10;
String a = "01234567891234";
// Split into to strings.
String lastString = a.substring(a.length() - n);
String firstString = a.substring(0, a.length() - n);
// Format second string and result is concatenated with first.
String formattedLastString = String.format("%15s", lastString);
String formattedString = firstString.concat(formattedLastString);
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.