我有这个字符串:
Java 2 5 22 8
我想要一个带有这些值的字符串数组:
["2"; "5"; "22"; "8"]
有没有办法使用subString()方法才能这样做,还是应该采用其他方法?
答案 0 :(得分:1)
然而有多少个空格:
String str = "Java 5 22 8";
String[] arr =
str
.replaceAll("( )+"," ")
.replaceFirst("Java ", "")
.split(" ");
for (String a : arr) {
System.out.println(a);
}
答案 1 :(得分:0)
在分割和正则表达式上搜索了一下之后,我找到了答案:line.split("[ ]{2,}")
答案 2 :(得分:0)
您认为"Java"
前缀不感兴趣,因此您可以拨打substring
和trim
(删除4个号码周围的空格):
line.substring(4).trim() // equals "2 5 22 8"
然后,您可以通过一个或多个空格字符split
该行。执行此操作的Java正则表达式为"\\s+"
,因为\\s
匹配空白字符,+
表示“一个或多个”。
line.substring(4).trim().split("\\s+") // equals ["2", "5", "22", "8"]
答案 3 :(得分:0)
如果你想使用子字符串,这里有一些可能非最佳的解决方案。你从字符串的开头开始,查找第一个数字,而不是继续查找不是数字的下一个字符。做之间的子串,然后继续寻找下一个数字。
while (i<s.length()){
char c=s.charAt(i);
if(c>='0'&&c<='9'){
j=i;
char c1=s.charAt(j);
while ((c1>='0'&&c1<='9')&&j<s.length()){
c1=s.charAt(j);
j++;
}
strings[p++]=s.substring(i, j);
i=j;
}else i++;
}
答案 4 :(得分:-1)
我无法分辨这些是否被空格分隔,但如果是这样,您可以在字符串上使用$value = false;
var_dump($value);
switch ($value) {
case is_int($value):
echo "INT";
break;
case is_bool($value):
echo "BOOL";
break;
case is_null($value):
echo "NULL";
break;
default:
echo "DEFAULT";
}
方法。
示例:
.split()