Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/regex/16.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
将一个变量分配给位于某个分隔符Ex.“|”;使用Java_Java_Regex_Indexing - Fatal编程技术网

将一个变量分配给位于某个分隔符Ex.“|”;使用Java

将一个变量分配给位于某个分隔符Ex.“|”;使用Java,java,regex,indexing,Java,Regex,Indexing,我有一个字符串,我想分解它,并将这个字符串的不同部分分配给不同的变量 String: String str ="NAME=Mike|Phone=555.555.555| address 298 Stack overflow drive"; To Extract the Name: int startName = str.indexOf("="); int endName = str.indexOf("|"); String name = str.substring(startName +1

我有一个字符串,我想分解它,并将这个字符串的不同部分分配给不同的变量

String: 
String str ="NAME=Mike|Phone=555.555.555| address 298 Stack overflow drive";

To Extract the Name:
int startName = str.indexOf("=");
int endName = str.indexOf("|");
String name = str.substring(startName +1 , endName ).trim();

But I can't extract the phone number: 
int startPhone = arg.indexOf("|Phone");
int endPhone = arg.indexOf("|");
String sip = arg.substring(startPhone + 7, endPhone).trim();
现在,如何提取分隔符“|”之间的电话号码。
另外,是否有其他方法使用分隔符“=”和第一个“|”提取名称

您可以同时在=和|上拆分,然后拾取非标签部分

String delimiters = "[=\\|]";
String[] splitted = str.split(delimiters);
String name = splitted[1];
String phone = splitted[3];
注意,他的代码假定输入的格式与您发布的格式完全相同。您可能需要检查空白和其他不规则情况

String[] details = str.split("|");
String namePart = details[0]; 
String phonePart = details[1]; 
String addressPart = details[2];
String name = namePart.substring(namePart.indexOf("=") + 1).trim();
String phone = phonePart.substring(phonePart.indexOf("=") + 1).trim();
String address = addressPart.trim();

我希望这能有所帮助。

为什么不用
str.split(\\\\\\)
?@Tunaki来拆分
=
,然后他必须再次拆分
=
。)试试这个
(?)?