java-求字符串中相同最长的字串

问题描述

求字符串中相同最长的字串

用java程序写 题目:输入一行字母组成的字符串,找出其中出现的相同且
长度最长的字符串,输出它及其首字符的位置。
如yyabrdabjcabreg,则输出为abr,3。异常情况输出-1

解决方案

/**
* 思路:"abdab" 拆分情况:1.ab abd abda abdab 2.bd bda bdab 3 da dab 4 ab 5 b
*
* @param str
* @return
*/
public static String find(String str) {
String reg;// 最大字符串
String left;// 剩余字符串
int k = 0;// 计数器
int len = 0;// 最大字符串的长度
String result = null;// 最终结果
for (int i = 0; i < str.length(); i++) {

        for (int j = 0; j < str.length() - i; j++) {
            if (k < (j + 1)) {
                // 将字符串拆分成若干个子串
                reg = new String(str.substring(k, j + 1));
                left = new String(str.substring(j + 1));

                if (left.indexOf(reg) != -1 && reg.length() != 1) {

                    if (reg.length() > len) {
                        result = reg;
                        len = reg.length();
                    }
                }
            }
        }
        k++;
    }
    return result;

}
时间: 2024-08-24 19:10:25

java-求字符串中相同最长的字串的相关文章

java 关于字符串中文字替换的问题

问题描述 java 关于字符串中文字替换的问题 怎么将文件中的字符串给替换掉并换行啊 直接replace不行 求详解 解决方案 这是两个图 上面的那个str应该是s 解决方案二: 在java判断字符串有多少中文字Java中文字编码问题详解Java中文字编码问题详解 解决方案三: 可以使用replaceAll(" "," ");试试. 解决方案四: 就是把想替换的字段换成换行符 解决方案五: 是这幅图 之前那个图上传错了 解决方案六: String str= s.re

java从字符串中提取数字的简单实例_java

随便给你一个含有数字的字符串,比如: String s="eert343dfg56756dtry66fggg89dfgf"; 那我们如何把其中的数字提取出来呢?大致有以下几种方法,正则表达式,集合类,还有就是String类提供的方法. 1 String类提供的方法: package 测试练习; import Java.util.*; public class get_StringNum { /** *2016.10.25 */ public static void main(Strin

java统计字符串中重复字符出现次数的方法_java

本文实例讲述了java统计字符串中重复字符出现次数的方法.分享给大家供大家参考,具体如下: package com; import org.junit.Test; /** * 统计一个字符串的重复字符出现的次数 * * @author zdw * */ public class StringTest { @Test public void test() { String s = "fdfaacceeeeeeeeeeeegghikkkkkoooo"; count(s); } public

java查找字符串中的包含子字符串的个数实现代码_java

1. 用indexof的方法: public class Test11 { private static int counter = 0; /** * @param args */ public static void main(String[] args) { String str ="sdSS**&HGJhadHCASch& ^^"; int i = stringNumbers(str); System.out.println(i); } public static

三种java 去掉字符串中的重复字符函数

三种java 去掉字符串中的重复字符函数 */ public static void main(string[] args) {         system.out.println(removerepeatedchar("ddddccffgd"));     }     public static string removerepeatedchar(string s) {         if (s == null)             return s;         str

求字符串中最长无重复字符的子串

题目:求一个字符串中最长的没有重复字符的子串. 方法一:穷举法,使用2重外循环遍历所有的区间,用2重内循环检验子串是否符合"无重复字符"这一要求.其中外层循环i.j 遍历所有的下标,m.n是内层循环,检查区间[i,j]是否符合要求.空间复杂度是O(1),时间复杂度O(N^4). //O(N^4)的时间复杂度 int max_unique_substring1(char * str) { int maxlen = 0; int begin = 0; int n = strlen(str)

我的Java开发学习之旅------&amp;gt;求字符串中出现次数最多的字符串以及出现的次数

金山公司面试题:一个字符串中可能包含a~z中的多个字符,如有重复,如String data="aavzcadfdsfsdhshgWasdfasdf",求出现次数最多的那个字母及次数,如有多个重复的则都求出. 此题的解题思路如下: 引入TreeSet:通过集合快速找到所有出现过的字符串 引入ArrayList:为了快速排序,再通过StringBuffer生成排序后的字符串 通过String的indexOf方法和lastIndexOf方法来计算每个字符串出现的次数最大值 使用HashMap

java求字符串型逻辑表达式的bool值

  这是最近在项目中的一个需求,已知a=3,求字符串"a<=2"的值,也就是应该返回false.这个问题可大可小,就我们的应用场景也就是用来让用户自定义变量区间,比如类似下面这样的规则: a<=2    返回积分系数1.0 2<a<=5  返回积分系数1.1 a>5     返回积分系数1.2     如果用switch写死在代码中,以后要修改规则实在是很麻烦的事情,用户也希望能自己维护这样些区间值.于是我想就让用户自己输入这样的表达式和变量的值保存在数据

Java判断字符串中是否包含中文方法_java

今天和同事在讨论一个问题,需要检查"输入的字符串中是否包含中文",刚开始想到是用正则表达式,正则表达式中是以[u4e00-u9fa5]来全匹配字符是否是中文,但现在面临的问题是这个字符串中还可能包含英文字符.数字.特殊字符,一时也没想出能匹配该场景的正则表达式,后来在网上搜了下,可以使用Matcher类来解决该问题,大致的代码实现如下: import java.util.regex.Matcher; import java.util.regex.Pattern; public clas