我正在尝试使用空格分割字符串,但前提是只有一个空格。
例如我有以下内容。
String s = "THIS IS A TEST";
我想把结果“THIS”,“IS”,“A TEST”。如何组建正则表达式来完成这项工作?
答案 0 :(得分:4)
使用lookarounds:
public String getData(String url){
StringBuilder stringBuilder = new StringBuilder();
JSONObject jsonObject = new JSONObject();
HttpURLConnection conn = null;
try {
URL url1 = new URL(url.toString());
conn = (HttpURLConnection) url1
.openConnection();
InputStreamReader in = new InputStreamReader(
conn.getInputStream());
int b;
while ((b = in.read()) != -1) {
stringBuilder.append((char) b);
}
return stringBuilder.toString();
}
此正则表达式匹配未遵循且未以空格开头的空格。
在Java中,它会看起来:
(?<!\s)(\s)(?!\s)
说明:
"THIS IS A TEST".split("(?<!\\s)(\\s)(?!\\s)");
匹配&#34; b&#34; &#34; a&#34; (?<!a)b
匹配&#34; b&#34; &#34; a&#34; 进一步阅读:
答案 1 :(得分:1)
由于split()的参数是正则表达式,因此您可以查找一个或多个空格(“+”)而不只是一个空格(“”)。
String [] array = s.split(“+”);
您还可以添加和参数来限制要将字符串拆分成的单据数。
String [] array = s.split(“+”,N);
其中N是要将字符串分成的分割数。
答案 2 :(得分:1)
您可以尝试使用单词边界的此正则表达式。
string.split("\\b\\s\\b");