是否有一种简单的方法可以用一个制表符替换行开头的所有空格?
我想过使用循环和StringBuffer
:
String s = "some multi line text\n foo bar\n blah";
StringBuffer sb = new StringBuffer(s);
for (int i = 0; i < sb.length(); i++) {
if (sb.charAt(i) == '\n') {
while (sb.charAt(i + 1) == ' ')
sb.delete(i + 1, i + 2);
sb.insert(i + 1, '\t');
}
}
s = sb.toString();
但这似乎太难了。
答案 0 :(得分:5)
这应该有效:
str = str.replaceAll("(?m)^\\s+", "\t");
(?m)
标志表示“克拉和美元匹配行的开始和结束”,因此^
将匹配字符串中每一行的开头。