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

Ngu*_*inh 4 java string android split

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

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

Nic*_*ole 11

因为String.split基于正则表达式的匹配,@.意味着它在一行中查找两个字符(不是任何一个字符).并且,.在正则表达式中是一个特殊字符,意思是"任何东西":

@. = "@ and then any character"
Run Code Online (Sandbox Code Playgroud)

在你的情况下,这匹配"@g"而不是点.

相反,你想要:

String[] pattens = email.split("[@.]");
Run Code Online (Sandbox Code Playgroud)

方括号[]创建一个字符类,表示单个位置可以匹配的所有有效字符.所以,你需要匹配" @"或" .".角色.不需要在角色类中进行转义.