java - 为什么java代码中的String.length不计算空格?

标签 java string replaceall

我对一个简单的问题感到很困惑。当我在字符串中使用空格时,String.length方法只计算空格之前的字符串长度,为什么?例如,它返回“ab cdef”的长度2,而它似乎是7!我想知道带空格的字符串长度, 这是我的简单代码:

public static void main(String[] args){
    Scanner scanner = new Scanner(System.in);
    System.out.println("Please Enter Operation: ");
    String value = scanner.next();
    System.out.println(valuee.length());
}// psv main

另外,如果我想删除字符串中的空格,

String valuee = value.replaceAll("\\s","");

不起作用! 有人可以帮我吗?

最佳答案

扫描器使用分隔符模式将其输入分解为标记,默认情况下与空格匹配。您可以使用 useDelimiter 方法更改分隔符

    Scanner scanner = new Scanner(System.in);
    scanner.useDelimiter("\n"); // use new line as delimiter instead of white space
    System.out.println("Please Enter Operation: ");
    String value = scanner.next();
    System.out.println(value.length());

您甚至可以使用nextLine(),它默认以新行作为分隔符

关于java - 为什么java代码中的String.length不计算空格?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/53332509/

相关文章:

java - Thymeleaf 模板未发布正文

c - 从函数返回字符串数组的指针

swift - 从字符串中删除尾随数字

javascript - 如何替换字符串中的 $1 , $2

java - ReplaceAll 仅替换第一次出现的子字符串

java - 禁用或延迟 Apache Httpclient 请求中的超时

java - 尝试在java中验证用户输入

c++ - 使用指针c++的问题

java - java中用正则表达式表示回车和引号

java - 新列表中链表的重复项