【发布时间】:2017-12-06 03:04:57
【问题描述】:
我花了一段时间搜索谷歌。它导致了这里和其他地方的一些文章。 我正在寻找使用字符串格式引擎(或者应该调用它 - 如果您知道,请给我正确的术语)来获取输入字符串的结尾而不是字符串的开头..
例子:
System.out.printf("[%tY/%<tm/%<td-%<tH.%<tM.%<tS][%-20.20s] %s%n", new Date(), "long.string.class.test.TestClass", "Content Test...");
输出:
[2017/12/05-21.49.11]"[long.string.class.te] Content Test...
而我想要:
[2017/12/05-21.49.11]"[class.test.TestClass] Content Test...
此外,我很好奇如果字符串超过 20 个字符的限制,是否也可以将前 3 个字符替换为 '...'。
【问题讨论】:
-
所以你想要从
"long.string.class.test.TestClass"右侧开始的 20 个字符?这听起来像你真的想要一些与你所要求的不同的东西。你真正需要做什么? -
我将此标记为重复,请查看其他问题和答案,看看它们是否对您有帮助。
-
@xtratic,您的问题的答案是肯定的。此外,我希望通过 String.format 做到这一点,这就是为什么我按照我的方式命名和标记它。如果浪费时间或不清楚,请道歉。
-
@xtratic 虽然我同意这是重复的,但似乎该解决方案不使用 String.format 来完成任务,您可以通过格式化程序帮助执行此操作吗有机会吗?
-
没关系。我认为
printf()无论如何都会调用String.format(),但我面前没有Java 源代码。我要添加一个答案,因为我要输入更多内容。或者说,吉姆的帖子基本上就是我要说的。
标签: java printf string.format