我们如何检查特定字符串在Java中的另一个字符串中是否多次出现?
您可以使用任何一种方法查找字符串是否包含指定的字符序列-
的indexOf()
方法-的indexOf()
String类的方法接受字符串 值,并发现它在当前的字符串并返回它的(起始)指数。如果在当前字符串中找不到给定的字符串,则此方法返回-1。
的contains()
方法-的包含字符串类的()方法接受字符值,并确认是否存在在当前字符串的序列。如果找到,则返回true,否则返回false。
除了这些,您还可以使用Split()
String类的方法。此方法接受表示定界符的String值,基于给定的定界符分割当前String并返回包含String标记的String数组。
您可以使用此方法将字符串拆分为单词数组,然后手动将每个单词与所需单词进行比较。
示例
以下Java示例将文件的内容读取到String中,从用户那里接受一个单词,并打印给定单词在String(文件)中出现的次数。
import java.io.File; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.util.Scanner; public class StringOccurrence { public static String fileToString(String filePath){ Scanner sc = null; String input = null; StringBuffer sb = null; try { sc = new Scanner(new File(filePath)); sb = new StringBuffer(); while (sc.hasNextLine()) { input = sc.nextLine(); sb.append(" "+input); } } catch(Exception ex) { ex.toString(); } System.out.println("Contents of the file: "); System.out.println(sb); return sb.toString(); } public static void main(String args[]) throws FileNotFoundException { //读取要从用户找到的单词 String filePath = "D://sampleData.txt"; Scanner sc = new Scanner(System.in); System.out.println("Enter the word to be found"); String word = sc.next(); boolean flag = false; int count = 0; String text = fileToString(filePath); String textArray[] = text.split(" "); for(int i=0; i<textArray.length; i++) { if(textArray[i].equals(word)) { flag = true; count = count+1; } } if(flag) { System.out.println("Number of occurrences is: "+count); } else { System.out.println("File does not contain the specified word"); } } }
输出结果
Enter the word to be found Readers Contents of the file: nhooo.com originated from the idea that there exists a class of readers who respond better to online content and prefer to learn new skills at their own pace from the comforts of their drawing rooms. The journey commenced with a single tutorial on HTML in 2006 and elated by the response it generated, we worked our way to adding fresh tutorials to our repository which now proudly flaunts a wealth of tutorials and allied articles on topics ranging from programming languages to web designing to academics and much more. 40 million readers read 100 million pages every month. Our content and resources are freely available and we prefer to keep it that way to encourage our readers acquire as many skills as they would like to. We don’t force our readers to sign up with us or submit their details either. No preconditions and no impediments. Simply Easy Learning! Number of occurrences is: 4