JAVA比较两个字符串大小 查找相同字符串

  次阅读 来源:互联网(转载协议) 2016-01-19 12:32 我要评论(0)

作为一个初学Java的小菜鸟,每天过着3点一线的生活,每天12个小时的学习虽然辛苦,但是收获确实巨大的,每次编出一个像样点的程序,自己都会觉得非 常的开心,下面就给大家分享一下,我在Java学习中遇到的困难和解决问题的方法。

如题,本次小子在做题库时候遇到了这个问题,思考了好一会才有所想法,后来修修改改,经过一个多小时才把这题给搞定(不得不说自己的水平很菜啊,不过 我们才刚学到数组,字符串是自己钻研的)。

这个题目最大的困难之处在于如何找到所有相同的字符串,然后进行比较,所以解决这个问题的思路就是如下这样。

首先,要比较两个字符串的大小,通过大的字符串去indexof小的字符串,这样才能更精确吗,相信这个步骤大家都会,我就不做赘述了。

然后,我们要通过双循环来查找相同的字符串,在做这个的时候,首先我们先查下Java的API,String类型里面有一个 substring(int beginIndex, int endIndex),调用这个函数,会返回一个新字符串,它是此字符串的一个子字符串。,学会了这个方法,我们就不难写出以下代码

String[] str = new String[50]; //新建一个字符串数组,这个可以根据你输入的字符长度进行改变

int n = 0;

for (int i = 0; i < s2.length(); i++) {

for (int j = i + 1; j <= s2.length(); j++) {

if (s1.indexOf(s2.substring(i, j)) != -1) { //循环遍历相同的字符串

str[n] = s2.substring(i, j);

n++;

}

}

}

此段代码中if (s1.indexOf(s2.substring(i, j)) != -1)为核心代码,因为本文面向的都是和我一样的小菜,所以就和大家具体说说,substirng 不断通过双循环返回各个长度的s2的子字符串,s1通过indexof的方法去查找s1中有没有和返回的s2的子字符串相同的字符串,如果找到相同的就把 它放到我们已经建好的字符串数组str中。

然后我们把找到的相同字符串进行长度的比较,这个相信给小菜也都会,代码如下:

int maxLen = str[0].length(); //假设第一个值为最大值

for (int i = 1; i < n; i++) {

if (str[i].length() >= maxLen)

maxLen = str[i].length();

}

通过字符串长度的比较,这样我们就可以把最大的相同字符串给找出来了,登登登~!~!~!

剩下的就是输出了,同样把代码贴出来。

for (int i = 0; i < n; i++) {

if (str[i].length() == maxLen)

System.out.println(str[i]);

}

如果各位觉得我赘述的过多,想要直接要代码的话,本小子同样乐于分享,把完整的代码贴给大家,(已经实现过了,可以直接用哦~)嘿嘿,本篇文章是本小 子第一次发表技术类的帖子,虽然题目很简单,但是乐于分享才是我们程序员极客精神的体现吗~如有不足,请各位看官尽情提出埃

完整代码

public class Test {

public static void main(String[] args) {

Scanner in=new Scanner(System.in);

String a=in.next();

String b=in.next();

subStr(a, b);

}

public static void subStr(String s1, String s2) {

String[] str = new String[50];

int n = 0;

for (int i = 0; i < s2.length(); i++) {

for (int j = i + 1; j <= s2.length(); j++) {

if (s1.indexOf(s2.substring(i, j)) != -1) {

str[n] = s2.substring(i, j);

本站部分文章来源于网络以及网友投稿,本站只负责对文章进行整理、排版、编辑,是出于传递更多信息之目的,并不意味着赞同其观点或证实其内容的真实性。如果您有什么意见或建议,请联系QQ28-1688-302!

人工智能实验室
相关文章相关文章
  • 第一批国家重点研发计划公布,旷视科技开启“五年行动”

    第一批国家重点研发计划公布,旷视科技开启“五年行动”

  • 长虹新款智能语音空调,告诉你空调也能玩Siri

    长虹新款智能语音空调,告诉你空调也能玩Siri

  • 品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

    品友互动为Digital Travel APAC2018 唯一受邀中国AI企业

  • 让AI触手可及  Qualcomm携手创通联达推出全新终端侧AI开发套件

    让AI触手可及 Qualcomm携手创通联达推出全新终端侧AI开发套件

网友点评网友点评
阅读推荐阅读推荐

据外媒报道,STEER打造了首款完全自动驾驶停车技术,旨在使常规车辆转变为无人驾驶车辆。STEER的首款技术应用是4级自动驾驶及网络安全停车...

近日,美国软性机器抓手制造商 Soft Robotics 宣布,获得 2000 万美元的融资,本轮投资者包括 Scale Venture Partners,Calibrate Ventures...

据外媒报道,加州车管局发布了《2017自动驾驶脱离报告(California Autonomous Vehicle Disengagement Reports)》,其中谈及了脱离的具体...

用人机语音交互,来解决智能家居适老的问题;通过家庭门禁与安防套件、空气净化套件、可燃气体与有害气体监控套件等相互联动,在不同生活情...