java - 用句点(.)分割的字符串表现出不同的行为

标签 java string

<分区>

我正在处理 String 并尝试使用 split() for 就像:-

String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split(".")));

以上代码输出[]空数组。但是如果我转义 . 就像:-

String s = "Hi.Hello";
System.out.println(Arrays.toString(s.split("\\.")));

它给出正确的输出为 [Hi, Hello]

所以我想知道:-

为什么我需要转义 .. 它通常不被视为 String 中的转义字符,因为我们可以使用 . 直接。

最佳答案

String.split( String ) 方法将正则表达式作为参数。在正则表达式“.”中意思是“任何字符”,所以如果你真的想用“。”分割,你必须转义它(通过添加“\\”)。而不是“任何字符”。

参见Pattern的api文档正则表达式入门。

关于java - 用句点(.)分割的字符串表现出不同的行为,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/31610372/

相关文章:

java - BroadcastReceiver 中的 EditText

c++ - 从字符串元素中提取整数值并相加

java - 如何设计美观的Web应用程序

java - 从 Stream 调用的 close() 方法如何指向 AbstractPipeline 抽象类中 close() 方法的实现?

java - 尝试通过使用复选框将 jlabel 完全删除/添加到 jframe

java - 可转换为整数的字符串的哈希码

java - 从 JTextArea 获取字符

java - 按屏幕尺寸更改 LinearLayout

java - Objective C 相当于 java 中的 intern()

string - 字节收集到 clojure 上的字符串