当前位置:首页 > 数码 >

怎样正确判断字符常量(字符型常量怎样算合法)

来源:原点资讯(www.yd166.com)时间:2024-04-26 12:49:28作者:YD166手机阅读>>

本文我们将分享介绍一道关于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出现的次数。

接下来,我们采用源代码进行实现:

import com.google.common.collect.Maps; import com.google.common.collect.Sets; import org.apache.commons.lang3.StringUtils; ​ import java.util.Map; import java.util.Set; ​ public class CharacterOperation { private static final String str="debug认为jvm虚拟机在进行优化,第一时间想到应该都是配置堆内存的大小,其次就是java垃圾收集器了。java垃圾收集器的配置对于jvm优化来说是一个很重要的选择,选择合适的垃圾收集器可以让jvm的性能有一个很大的提升。截止Jdk 1.8,一共有7款不同的垃圾收集器。每一款不同的垃圾收集器都有不同的特点,在具体使用的时候,需debug要根据具体的情况选用不同的垃圾收集器debug"; ​ private static final Set<String> set= Sets.newHashSet("jvm","垃圾","debug","java","mysql"); ​ public static Map<String,Integer> method1(){ Map<String,Integer> map= Maps.newHashMap(); ​ set.parallelStream().forEach(s -> map.put(s,0)); set.parallelStream().forEach(e -> { String tempStr=str.intern(); Integer total=0; ​ while (StringUtils.isNotBlank(tempStr) && tempStr.contains(e)){ total = 1; tempStr=tempStr.substring(tempStr.indexOf(e) e.length()); } map.put(e,total); }); return map; } ​ public static void main(String[] args) { System.out.println(method1()); } }

最终得到相应的输出结果如下图所示:

怎样正确判断字符常量,字符型常量怎样算合法(1)

当然啦,虽然说效果是实现了,但是在性能层面以及代码编写层面,我觉得肯定有更好的、更优的方式,各位小伙伴如果有更好的实现方式,可以 debug相关的扣扣或者vx,然后进行交流,或者也可以将实现后的代码打包发给我,我整理后也会将相关的代码分享发布出来,以供大家学习(当然啦,自然会备注该代码的归属!)

,

栏目热文

四级成绩查询共多长时间(四级成绩查询时间有截止日期吗)

四级成绩查询共多长时间(四级成绩查询时间有截止日期吗)

2023年下半年全国大学英语四、六级考试(CET)成绩查询服务将于2024年2月27日上午6时开通。来“中国教育发布”客...

2024-04-26 12:36:29查看全文 >>

四级成绩用什么查询(四级怎么查询成绩最新)

四级成绩用什么查询(四级怎么查询成绩最新)

四六级成绩查询。12月份第一次考四级的同学,成绩通常会比估计的高个几十分。今天教你们一下不需要准考证号去查询四六级成绩的...

2024-04-26 12:45:47查看全文 >>

四级怎么查以前的成绩(四级怎么查历史成绩)

四级怎么查以前的成绩(四级怎么查历史成绩)

四六级成绩会被覆盖吗?四六级成绩这次比上次更低了怎么办?听说点赞的同学不管怎样都能过级。四六级成绩会被覆盖吗?按最新还是...

2024-04-26 12:30:26查看全文 >>

四级怎么查询之前的成绩(四级成绩查询简单方法)

四级怎么查询之前的成绩(四级成绩查询简单方法)

今天,2023年下半年全国大学英语四、六级考试(CET)成绩查询服务开通。查询网址→https://cjcx.neea....

2024-04-26 12:17:51查看全文 >>

四级怎么查过去的成绩(如何查四级过去的成绩)

四级怎么查过去的成绩(如何查四级过去的成绩)

据教育部教育考试院消息2023年下半年全国大学英语四、六级考试成绩查询服务将于2月27日6时开通考生可通过中国教育考试网...

2024-04-26 12:00:15查看全文 >>

怎么解决字符常量中的字符过多(字符常量合法的条件)

怎么解决字符常量中的字符过多(字符常量合法的条件)

一、字符串1、基本特性2、JDK9中String变化二、String的内存分配三、字符串拼接操作3.1、案例分析3.2、...

2024-04-26 12:29:31查看全文 >>

常量字符串为什么不能修改(字符型常量和字符串常量如何使用)

常量字符串为什么不能修改(字符型常量和字符串常量如何使用)

哈喽,我是子牙,一个很卷的硬核男人深入研究计算机底层、Windows内核、Linux内核、Hotspot源码……聚焦做那...

2024-04-26 12:23:53查看全文 >>

常量中有换行符解决方法(c语言常量中有换行符怎么解决)

常量中有换行符解决方法(c语言常量中有换行符怎么解决)

【分享成果,随喜正能量】千淘万漉虽辛苦,吹尽狂沙始到金。无人问津的日子里,定心,静心,做好自己的事,一切烦躁焦虑都烟消云...

2024-04-26 12:04:03查看全文 >>

整型常量要用逗号隔开吗(长整型常量后面要跟什么字母)

整型常量要用逗号隔开吗(长整型常量后面要跟什么字母)

1、#define宏定义以#号开头的都是编译预处理指令,它们不是C语言的成分,但是C程序离不开它们,#define用来定...

2024-04-26 12:02:21查看全文 >>

字符常量过多怎么解决(常见的字符常量怎么判断)

字符常量过多怎么解决(常见的字符常量怎么判断)

作为一个面向对象的编程语言,Java提供了自动的内存管理机制,这也成为了很多面试官最喜欢问的问题。从内存管理的角度来谈谈...

2024-04-26 12:49:02查看全文 >>

文档排行