【发布时间】:2013-02-06 04:23:24
【问题描述】:
例如,如果您有一个制表符分隔值列表:
foo1\tfoo2\tfoo3\tfoo4\t
添加最后一个 \t 是因为每个 += 都会自动附加 \t。
如何以简单的方式删除最后一个 \t?所以结果是:
foo1\tfoo2\tfoo3\tfoo4
作为 Hover 的请求,我所拥有的一个小例子:
String foo = "";
for (int i = 1; i <= 100; i++) {
foo += "foo" + "\t";
if (i % 10 == 0) {
foo = foo.trim(); // wasn't working
foo += "\n";
}
}
System.out.println(foo);
输出(用字符串选项卡替换实际选项卡以在此处显示):
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
foo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\tfoo\t
这就是我问这个问题的主要原因,.trim() 不起作用,因此,我坚持认为 trim() 不是为尾随制表符制作的。
【问题讨论】:
-
请不要在循环中使用
+=来构建字符串。你基本上以二次运行时结束。 -
只需在字符串上调用
trim()。 -
使用 lastIndexOf 例如字符串 c = "foo1\tfoo2\tfoo3\tfoo4\t"; c=c.subString(0,c.lanstIndexOf("\t")-1);
-
不,完全使用更好的方法。 stackoverflow.com/questions/1751844/…
-
"\t" 不是可以用 trim() 删除的空格
标签: java string formatting