java - 无法让 String.split() 在 android 上按预期工作

标签 java android string split

我想在 java (android) 中拆分电子邮件字符串,但它无法正常工作。

Input: "ihnel48@gmail.com"
String[] pattens = email.split("@.");
Expected: "ihnel48", "gmail", "com"
Output: "ihnel48" "mail.com"

最佳答案

因为 String.split基于 regular expression 的匹配, @. 表示它在一行中查找两个 个字符(而不是either 个字符一次)。并且,正则表达式中的 . 是一个特殊字符,意思是“任何东西”:

@. = "@ and then any character"

在您的情况下,这匹配“@g”并且不是点。

相反,您想要:

String[] pattens = email.split("[@.]");

方括号[]创建了一个字符类,它代表了一个位置可以匹配的所有有效字符。所以,你需要匹配“@”或“.”。字符 . 不需要在字符类中转义。

关于java - 无法让 String.split() 在 android 上按预期工作,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/6714968/

相关文章:

java.lang.IncompatibleClassChangeError : Implementing class Mongo

c - 在 C 中读取字符串以防止出现问题的正确方法是什么

java - Spring Boot 无法识别 MongoDB RestController 类

java - 如何在 Java 中检测 SQL 表的存在?

java - 使用 hibernate 连接到 SQL Server 2017

android - 尝试添加 Google map 时出错

android - 使用 ADT r14 不断恢复 R.java

android - @Android display/res/viewable 在 WebView

c - 读取字符串无法正常进行

java.lang.StringIndexOutOfBoundsException