解析Java中String的输入

Ton*_*ony 1 java regex parsing split

我有一个String添加为Phenix City,AL 36867.我想最终有3个java字符串:city,state,zip对应的值.

我有什么工作但很复杂.用逗号分隔字符串

String[] halves = add.split(",");
String city = halves[0].replace(",","").trim();
Run Code Online (Sandbox Code Playgroud)

然后用其余部分拧紧

String remainder = halves[1].trim();
String[] fields = remainder.split("");
String state = fields[0];
String zip = fields[1];
Run Code Online (Sandbox Code Playgroud)

但似乎必须有一个更优雅的方式?

Avi*_*Raj 7

根据以下正则表达式进行拆分.

string.split("\\s*,\\s*|\\s+(?=\\d)");
Run Code Online (Sandbox Code Playgroud)

DEMO