Java Regex算盘&删除行首的空格?

时间:2014-01-31 05:55:01

标签: java regex

搜索其他问题无法找到任何结果。

我写了一个正则表达式来删除行开头的空格,但是我需要计算它们并将它们放在行的开头?

scan.nextLine().replaceAll("\\s+", "").trim();

上面是正则表达式(它在while循环中)。我正在读取文本中的while循环以检查是否有更多的文本并且它工作正常但我不知道如何打印一个整数并删除空格数。

感谢。

5 个答案:

答案 0 :(得分:16)

如果要计算字符串开头的空格:

String s = "  123456";
int count = s.indexOf(s.trim());

答案 1 :(得分:2)

你可以使用Pattern& Matcher,这样你就可以得到匹配的字符串和它的长度。

String pattern = "\\s+";
String str = "     Hello   ";
Matcher matcher = Pattern.compile(pattern).matcher(str);
if(matcher.find()){
    System.out.println(matcher.group().length());
    str = matcher.replaceAll("");
    System.out.println(str);
} 

答案 2 :(得分:1)

试试这个:这将为您提供前导和尾随空格的计数。

String str = "  Hello   ";
int strCount = str.length();

获得领先空间:

String ltrim = str.replaceAll("^\\s+","");
System.out.println(":"+ltrim+": spaces at the beginning:" + (strCount-ltrim.length()));

获取尾随空格:

String rtrim = str.replaceAll("\\s+$","");
System.out.println(":"+rtrim+": spaces at the end:" + (strCount-rtrim.length()));

答案 3 :(得分:0)

为什么不这样做呢?

String line = scan.nextLine();
String trimmedLine = line.replaceAll("^\\s+", "");
int spacesRemoved = line.length() - trimmedLine.length();

答案 4 :(得分:0)

这样做

 public static void main(String args[]){

            String scan =" Hello World";

              String scan1= scan.replaceAll("^\\s*","");

                   int count = scan.length()-scan1.length();

            System.out.println("Number of Spaces removed at the begining"+count);

         }