摘要:本文我们将分享介绍一道关于Java的“字符串面试题~代码实现题”,主要实现的功能“查找特定的字符串单词word在一个长长的字符串str中出现的次数”,其中,debug将采用一种比较简陋的Java“字符串包含+定位+裁剪”的方式进行实现!
内容:这是一道Java开发工程师在求职面试时,企业可能会出的关于字符串方面的“代码实战编写”的题目,大体的内容为:给定一些字符串单词wordList,然后分别查找出这些字符串单词在给定的“文本串”中出现的次数。
比如给定的“文本串”内容words为:“debug认为jvm虚拟机在进行优化,第一时间想到应该都是配置堆内存的大小,其次就是java垃圾收集器了。java垃圾收集器的配置对于jvm优化来说是一个很重要的选择,选择合适的垃圾收集器可以让jvm的性能有一个很大的提升。截止Jdk 1.8,一共有7款不同的垃圾收集器。每一款不同的垃圾收集器都有不同的特点,在具体使用的时候,需debug要根据具体的情况选用不同的垃圾收集器debug”
同时给定的待查找的字符串单词列表为:jvm,垃圾,debug,java
则每个字符串单词出现的次数分别为:jvm=3,垃圾=6,debug=3,java=2
下面,我们可以采用如下的思路加以实现:
(1)遍历待查找的字符串单词列表wordList,获取每个字符串单词word,并初始化每个单词word出现的次数初始化值为0;
(2)仍然是遍历wordList,得到每个单词word,在真正处理之前,将文本串内容words赋值给一个临时的字符串变量tempStr,并定义一个单词出现的次数的记录器total。接下来便是对循环遍历获取的word进行处理,即(3)。
(3)首先需要判断一下tempStr是否包含待查找的单词word,如果是,则代表待遍历的单词word是存在的,total加1,此时需要定位出word所在的位置,并对tempStr进行裁剪,裁剪后得到的字符串值仍然赋值给tempStr。
(4)对于裁剪后得到的字符串值tempStr,仍然执行(3)的步骤,直到tempStr不再包含待查找的单词word 即 代表本次单词word的循环遍历查找获取出现的次数已经结束了,相应的total即为本单词word出现的次数。