我的java类中有这段代码
mystring = mysuperstring.split("/");
我想知道从拆分中创建了多少个子字符串。
在正常情况下,如果我想访问第一个子串我只写
mystring[0];
另外,我想知道mystring[5]
是否存在。
答案 0 :(得分:13)
我想知道从拆分中创建了多少个子字符串。
由于mystring
是一个数组,因此您只需使用mystring.length
来获取子字符串的数量。
另外,我想知道
mystring[5]
是否存在。
要做到这一点:
if (mystring.length >= 6) { ... }
答案 1 :(得分:10)
mystring = mysuperstring.split("/");
int size = mystring.length;
请记住,数组是零索引的,所以当length = 5时,最后一个元素将被索引为4。
答案 2 :(得分:2)
答案 3 :(得分:0)
试试这个&告诉我它是否有效。
import java.util.regex.Pattern;
public class CountSubstring {
public static int countSubstring(String subStr, String str){
// the result of split() will contain one more element than the delimiter
// the "-1" second argument makes it not discard trailing empty strings
return str.split(Pattern.quote(subStr), -1).length - 1;
}
public static void main(String[] args){
System.out.println(countSubstring("th", "the three truths"));
System.out.println(countSubstring("abab", "ababababab"));
System.out.println(countSubstring("a*b", "abaabba*bbaba*bbab"));
}
}
答案 4 :(得分:0)
答案 5 :(得分:0)
我想演示一个虚拟令牌验证。所以我试着用点 (split
) .
。它没有用。所以,我想知道并检查了一个小时但没有运气。过了一会儿,当我随机尝试时,我在点之前添加了转义字符,感谢上帝它起作用了:D。
原因是 split
将字符串作为正则表达式。我在写 answer here 时检查了原因:
您正在拆分正则表达式 .,这意味着“任何字符”
int len = accessToken.split("\\.").length;
我想检查的字符串
String accessToken = Bearer 1111.1111.11111 // demonstration purpose dumy
输出:
3