关于此代码,我想请求您的帮助。我正在尝试对特定单词进行某种编码,例如“Microsoft”等(随机的,只是为了学习该技术)。我已经成功地完成了所有事情,但是为了使这个搜索单词的kinf案例具有分析性。这是代码:
public class BannedWords {
public static String returnStars(int length){
String stars = "";
String addStar = "*";
for (int i = 1; i<=length; i++){
stars += addStar;
}
return stars;
}
public static void main(String[] args) {
String textString = "Microsoft announced its next generation Java compiler today."
+ " It uses advanced parser and special optimizer for the Microsoft JVM.";
StringBuilder text = new StringBuilder(textString);
String bannedWords = "Java, JVM, Microsoft";
String [] bWordsArr = bannedWords.split("[, ]+");
for(int i = 0; i<bWordsArr.length; i++){
int index = textString.indexOf(bWordsArr[i]);
while(index != -1){
text = text.replace(index, index+bWordsArr[i].length(), returnStars(bWordsArr[i].length()));
index = textString.indexOf(bWordsArr[i], index +1);
}
}
System.out.println(text.toString());
}
}
我需要搜索“Java”,“JVM”和“Microsoft”字样,不管它们的情况如何,即使我们尝试“MiCrosoFt”它应该可以工作,但经过几个小时的思考并尝试使用toUpperCase (),toLowerCase(),我无法找到如何做到这一点。你有什么想法吗?
事先谢谢你! :)
答案 0 :(得分:0)
使用indexOf()
时,toLowerCase()
会将选中的文本转换为小写。然后,您必须将搜索字词设为小写。
String text = "Java is a good programming language.";
int index = text.toLowerCase().indexOf("java");
您也可以使用toUpperCase()
,只需将搜索字词设为大写。
答案 1 :(得分:0)
实际上你应该使用 equalsIgnoreCase 。这是比较字符串的正确方法,无论其情况如何。而且您也不必将原始字符串修改为大写或小写以执行检查。我希望它有所帮助:)
yourString.equalsIgnoreCase(anotherString)