【发布时间】:2012-02-29 13:46:32
【问题描述】:
我的 java 类中有这段代码
mystring = mysuperstring.split("/");
我想知道从拆分中创建了多少子字符串。
在正常情况下,如果我想访问第一个子字符串,我就写
mystring[0];
另外,我想知道mystring[5]是否存在。
【问题讨论】:
我的 java 类中有这段代码
mystring = mysuperstring.split("/");
我想知道从拆分中创建了多少子字符串。
在正常情况下,如果我想访问第一个子字符串,我就写
mystring[0];
另外,我想知道mystring[5]是否存在。
【问题讨论】:
我想知道从拆分中创建了多少子字符串。
由于mystring是一个数组,你可以简单地使用mystring.length来获取子字符串的数量。
另外,我想知道
mystring[5]是否存在。
为此:
if (mystring.length >= 6) { ... }
【讨论】:
if (mystring.length >= 6) { ... }
mystring = mysuperstring.split("/");
int size = mystring.length;
请记住,数组是零索引的,所以当长度 = 5 时,最后一个元素将以 4 为索引。
【讨论】:
【讨论】:
试试这个并告诉我它是否有效。
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"));
}
}
【讨论】:
【讨论】:
我想演示一个虚拟令牌验证。所以我尝试通过点(.)split。它没有用。所以,我想知道并检查了一个小时没有运气。过了一会儿,当我随机尝试时,我在点之前添加了转义字符,感谢上帝它起作用了:D。
原因是split 将字符串作为正则表达式。我在写answer here时检查了原因:
您正在拆分正则表达式 .,这意味着“任何字符”
int len = accessToken.split("\\.").length;
我想检查的字符串
String accessToken = Bearer 1111.1111.11111 // demonstration purpose dumy
输出:
3
【讨论】: