Java中是否有与strpbrk等价的语言?如何使用它?
如果代码是这样的Java中是否有与strpbrk等价的语言?如何使用它?,java,c,string,Java,C,String,如果代码是这样的 const char str1[] = "abcde2fghi3jk4l"; const char str2[] = "34"; char *ret; ret = strpbrk(str1, str2); 如何在Java中复制相同的内容?在Java中没有直接的等价物 一种可能的解决办法是使用和 没有使用标准API的直接等价物 第一个解决方案:使用 第二种解决方案:使用标准Java8API,这相当冗长 String str1 = "abcde2fghi3jk4l";
const char str1[] = "abcde2fghi3jk4l";
const char str2[] = "34";
char *ret;
ret = strpbrk(str1, str2);
如何在Java中复制相同的内容?在Java中没有直接的等价物 一种可能的解决办法是使用和
没有使用标准API的直接等价物 第一个解决方案:使用 第二种解决方案:使用标准Java8API,这相当冗长
String str1 = "abcde2fghi3jk4l";
String str2 = "34";
OptionalInt ret = str2.chars().map(c -> str1.indexOf(c)).min();
第三种解决方案:使用正则表达式,但str1不应包含任何正则表达式特殊字符,因此我不建议使用它
Matcher matcher = str2.matcher("["+str1+"]");
if(matcher.find()){
ret = matcher.start();
}
首先,Java不是C,它不像C那样没有指针 我能想到的最接近您的代码的地方是:
final String str1 = "abcde2fghi3jk4l";
final String str2 = "34";
StringTokenizer st = new StringTokenizer(str1, str2);
String ret = st.hasMoreTokens() ? str1.substring(st.nextToken().length()) : null;
此代码使用JRE附带的
您可以自己尝试。有以下功能:
StringUtils.indexOfAny(String str,String searchChars)
它将返回searchChars
中第一个匹配字符的索引。希望这就是你想要的。
这是一个相当昂贵的方法,看看你是否可以使用一个更好的
依赖项为
org.apache.commons:commons-lang3
添加预期结果可能会导致help@jhamonret
是指向str1中作为str2一部分的任何字符的第一次出现的指针。gogglejava查找字符串中的字符串
可能重复的请添加预期结果,现在你的问题需要有人离开网站去弄清楚什么是strpbrk()
doe我使用了问题中给出的示例信息,我相信用户将能够预测所需的字符检查以获得真正的生产解决方案。
Matcher matcher = str2.matcher("["+str1+"]");
if(matcher.find()){
ret = matcher.start();
}
final String str1 = "abcde2fghi3jk4l";
final String str2 = "34";
StringTokenizer st = new StringTokenizer(str1, str2);
String ret = st.hasMoreTokens() ? str1.substring(st.nextToken().length()) : null;