报错信息: 意思是这个JavaLaunchHelper类被实现了两次。
Class JavaLaunchHelper is implemented in both
/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/bin/java (0x1066164c0)
and/Library/Java/JavaVirtualMachines/jdk1.8.0_151.jdk/Contents/Home/jre/lib/libinstrument.dylib (0x1066a24e0).
One of the two will be used. Which one is undefined.
我查了一下有博主查Stack Overflow上面说是mac版的idea的bug问题,原博文https://blog.csdn.net/lizhaowei213/article/details/68951671以前mac版本的idea有没有问题我不知道,如果是真的,这个错误也不只是版本bug才会引起。我又打debugger查了一下我的代码出现了死循环。所以才报了这个错,修改代码后问题就解决了。
错误代码:
/**
* 说明:在一个字符串中找子字符串出现的次数(报错代码)
* 思路:用indexOf(String str),subString(int beginIndex)方法,先找位置再截断取后面的继续找
*
* @author huayu
* @date 2018/8/29 6:32 PM
*/
public class CountSubString {
public static void main(String[] args) {
String string = "abccabababbaabc";
String subString = "abc";
int time = count(string, subString);
System.out.println(time);
}
public static int count(String str, String subStr) {
int count = 0;
int index = str.indexOf(subStr);
if (index != -1) {
count++;
}
str = str.substring(index + subStr.length());
while (str.indexOf(subStr) != -1) {
index = str.indexOf(subStr);
str.substring(index + subStr.length());
count++;
}
return count;
}
}
解决后代码:
package array;
/**
* 说明:在一个字符串中找子字符串出现的次数
* 思路:用indexOf(String str),subString(int beginIndex)方法,先找位置再截断取后面的继续找
*
* @author huayu
* @date 2018/8/29 6:32 PM
*/
public class CountSubString {
public static void main(String[] args) {
String string = "abccabababbaabc";
String subString = "abc";
int time = count(string, subString);
System.out.println(time);
}
public static int count(String str, String subStr) {
int count = 0;
int index = str.indexOf(subStr);
if (index != -1) {
count++;
}
str = str.substring(index + subStr.length());
while (str.indexOf(subStr) != -1) {
index = str.indexOf(subStr);
str=str.substring(index + subStr.length());
count++;
}
return count;
}
}
若有问题欢迎大家与我互动交流,可评论,可留言,以后每周我会坚持至少更新一篇博客文章,喜欢的朋友可以加一下关注。