Java获取两个字符串中最大相同子串的方法
"abcwerthelloyuiodef"
"cvhellobnm"
思路:
1,将短的那个子串按照长度递减的方式获取到。
2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到!
class StringTest3 { public static String getMaxSubString(String s1,String s2) { String max = "",min = ""; max = (s1.length()>s2.length())?s1: s2; min = (max==s1)?s2: s1; // sop("max="+max+"...min="+min); for(int x=0; x<min.length(); x++) { for(int y=0,z=min.length()-x; z!=min.length()+1; y++,z++) { String temp = min.substring(y,z); sop(temp); if(max.contains(temp))//if(s1.indexOf(temp)!=-1) return temp; } } return ""; } public static void main(String[] args) { String s1 = "ab"; String s2 = "cvhellobnm"; sop(getMaxSubString(s2,s1)); } public static void sop(String str) { System.out.println(str); } }
以上这篇Java获取两个字符串中最大相同子串的方法就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持我们。
相关推荐
-
Java中字符串中连续相同字符去重方法
最近参加了一个面试,问到了如何在一个字符串中连续相同字符去重,想了想用正则表达式应该可以轻松实现.可是由于长时间没有编码了,而且由于原先的工作用到的比较少.具体的自己就不会写正则表达式用到的类名什么的了.总之就是面试没有过了. 回来再网上搜了搜,本来以为可以很容易找到相应的内容,可是找了半天没有找到我想要的结果.后来在某个相似问题求助中看到了相应答案,不过还是有所区别,根据该问题的解决思路,最后实现了. 代码如下: public class Test { public static void m
-
Java操作文件输出为字符串以及字符串输出为文件的方法
文件输出为字符串示例代码: /** * 读取文件为字符串 * * @return */ public static String readString() { String str = ""; File file = new File("C:/Users/wan7/Desktop/表单/粗集料试验/粗集料冲击值试验(T0322-2000).html"); try { FileInputStream in = new FileInputStream(file); //
-
java 正则表达式获取两个字符中间的字符串方法
搞社区APP的时候,需要实现这个功能: String filetext = "//@张小名: 25分//@李小花: 43分//@王力: 100分"; Pattern p = Pattern.compile("\\@(.*?)\\:");//正则表达式,取=和|之间的字符串,不包括=和| Matcher m = p.matcher(filetext); while(m.find()) { System.out.println(m.group(0));//m.group
-
java判断字符串相等的方法
java中的字符串比较竟然不能直接用"=="!!!!而要用equals(),返回true为两字符串相等,返回false为两字符串不相等,举个栗子: if (s1.equals(s2)) { System.out.println("s1与s2相等!!"); } else { System.out.println("s1与s2没啥关系!!"); } 1.字符串是对象类型,所以不能用简单的"=="判断 2.equals()比较的是对
-
java字符串常用操作方法(查找、截取、分割)
如下所示: public class 字符串常用操作 { public static void main(String[] args) { /* * 查找子串 */ String str1="dwqae12232aebdalf"; //查找指定字符第一次出现的位置 int first1=str1.indexOf(97);//参数为字符的ascii码 //查找指定字符串第一次出现的位置 int first2=str1.indexOf("12"); //查找指定字符第一
-
java 判断字符串中是否有重复字符的示例
如下所示: /** * 判断字符串是否包含重复字符 * @param str * @return */ public static boolean containRepeatChar(String str){ if(str==null||str.isEmpty()){ return false; } char[] elements=str.toCharArray(); for(char e:elements){ if(str.indexOf(e)!=str.lastIndexOf(e)){ re
-
Java提取两个字符串中的相同元素方法
如下所示: public static void main(String[] args) { String str1 = "刘烨,孙坚,王二小,蜘蛛侠,钢铁侠,毛剑卿"; String str2 = "王二小,李占军,刘胡兰,毛剑卿"; String[] arr1 = str1.split(",") ; String[] arr2 = str2.split(",") ; StringBuffer sb = new String
-
Java 判断两个字符串是否由相同的字符组成的实例
问题:由相同的字符组成是指两个字符串,字母以及各个字母的个数是相同的,只是顺序不同.如:"aaaabbc"与"abcbaaa"是由相同字符组成. 方法一:排序法,也是最容易想到的方法,将两个字符串转换为字节数组,分别排序后,判断是否相同即可. 方法二:集合法(空间换时间),利用Map集合key的唯一性,遍历第一个字符串,将字符作为key,字符出现的次数作为value,若遇到重复字符则将value+1.之后遍历第二个字符串,遇到字符就将对应的value-1,若valu
-
基于Java中字符串indexof() 的使用方法
Java中字符串中子串的查找共有四种方法(indexof()) indexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置.如果没有找到子字符串,则返回-1. 如果 startindex 是负数,则 startindex 被当作零.如果它比最大的字符位置索引还大,则它被当作最大的可能索引. Java中字符串中子串的查找共有四种方法,如下: 1.int indexOf(String str) :返回第一次出现的指定子字符串在此字符串中的索引. 2.int indexOf(St
-
Java获取两个字符串中最大相同子串的方法
"abcwerthelloyuiodef" "cvhellobnm" 思路: 1,将短的那个子串按照长度递减的方式获取到. 2,将每获取到的子串去长串中判断是否包含,如果包含,已经找到! class StringTest3 { public static String getMaxSubString(String s1,String s2) { String max = "",min = ""; max = (s1.lengt
-
java获取两个数组中不同数据的方法
本文实例讲述了java获取两个数组中不同数据的方法.分享给大家供大家参考.具体实现方法如下: public static <T> List<T> compare(T[] t1, T[] t2) { List<T> list1 = Arrays.asList(t1); List<T> list2 = new ArrayList<T>(); for (T t : t2) { if (!list1.contains(t)) { list2.add(t)
-
java实现求两个字符串最长公共子串的方法
本文实例讲述了java实现求两个字符串最长公共子串的方法.分享给大家供大家参考,具体如下: 这个是华为OJ上的一道题目.首先,如果我们用java写代码,华为OJ有以下三条规则需遵守,否则编译无法通过或者用例无法通过,规则如下: (1)一定不可以有包名: (2)主类名只能为Main: (3)不可以输出与结果无关的信息. 好了,按照以上规则,我们写出来的代码如下(此代码不是最优的,只是用来记录华为OJ上java代码的书写规则): import java.util.Scanner; public cl
-
JavaScript自定义函数实现查找两个字符串最长公共子串的方法
本文实例讲述了JavaScript自定义函数实现查找两个字符串最长公共子串的方法.分享给大家供大家参考,具体如下: //查找两个字符串的最长公共子串 function findSubStr(s1,s2){ var S=sstr= "" ,L1=s1.length,L2=s2.length; if (L1>L2){ var s3=s1;s1=s2,s2=s3,L1=s2.length;} for ( var j=L1;j> 0 ;j--) for ( var i= 0 ;i&
-
PHP实现求两个字符串最长公共子串的方法示例
本文实例讲述了PHP实现求两个字符串最长公共子串的方法.分享给大家供大家参考,具体如下: 前面一篇PHP实现求解最长公共子串问题的方法是基于java改进而来,这里再来看另一种公共子串算法. 代码如下: <?php $a = 'abceee12345309878'; $b = 'abceeew2345i09878fsfsfsfabceeewsfsdfsfsabceeew'; $c = array(); $lenht1 = strlen($a); $lenth2 = strlen($b); $sta
-
java取两个字符串的最大交集
本文实例讲述了java取两个字符串的最大交集的实现方法,分享给大家供大家参考.具体实现方法如下: 复制代码 代码如下: package com.itheima.net; public class Game13 { public static void main(String[] args) { String s1 = "135adbfg67"; String s2 = "125dbf59"; Strin
-
java实现字符串匹配求两个字符串的最大公共子串
本文实例讲述了java实现求两个字符串最大公共子串的方法.分享给大家供大家参考,具体如下: 最近在项目工作中有一个关于文本对比的需求,经过这段时间的学习,总结了这篇博客内容:求两个字符串的最大公共子串. 算法思想:基于图计算两字符串的公共子串.具体算法思想参照下图: 输入字符串S1:achmacmh 输入字符串S2:macham 第a步,是将字符串s1,s2分别按字节拆分,构成一个二维数组: 二维数组中的值如b所示,比如第一行第一列的值表示字符串s2和s1的第一个字节是否相等,若相等就是1
-
Java 获取两个List的交集和差集,以及应用场景操作
背景介绍 在实际项目中,特别是一些管理后台类的项目,会遇到底层数据是按照一对多关系的数据表存储的管理界面.列表页是一对多关系中一对应的数据列表,二级的详情页中是一对多关系中多对应的多条数据展示.通常二级页面是能够增.删.改数据的编辑页面,在点击保存提交数据后,服务器端需要插入新增的数据,删除要删除的数据,更新改变的数据. 例如,在汽车电商领域,如果要实现一辆车型在不同省份有不同的价格行情,就需要有一个车价管理的后台管理界面.每辆车对应的详情界面管理各省价格行情,增加该车在某个省份的行情,或者更新
随机推荐
- DataList中TextBox onfocus调用后台void静态方法及获取相应行数
- 插件:检测javascript的内存泄漏
- javascript 类和命名空间的模拟代码
- oracle 动态AdvStringGrid完美示例 (AdvStringGrid使用技巧/Cells)
- Python采用socket模拟TCP通讯的实现方法
- javascript表格随机排序代码
- C#中使用split分割字符串的几种方法小结
- Android Activity生命周期和堆栈管理的详解
- 如何设置一个指定高度的DIV
- php实现scws中文分词搜索的方法
- Microsoft SQLServer的版本区别及选择
- 在SQL Server中使用命令调用SSIS包的具体方法
- JAVA实现空间索引编码——GeoHash的示例
- 详解SpringMVC中设置静态资源不被拦截的问题
- 微信小程序顶部可滚动导航效果
- laydate如何根据开始时间或者结束时间限制范围
- python聚类算法解决方案(rest接口/mpp数据库/json数据/下载图片及数据)
- 解决layui-table单元格设置为百分比在ie8下不能自适应的问题
- vue项目webpack中Npm传递参数配置不同域名接口
- 如何利用Jackson序列化忽略指定类型的属性详解