「最大公共字符串java」最长公共字符串

博主:adminadmin 2022-11-30 02:19:05 59

本篇文章给大家谈谈最大公共字符串java,以及最长公共字符串对应的知识点,希望对各位有所帮助,不要忘了收藏本站喔。

本文目录一览:

用java编写输入两个字符串输出最大相同字符串

这种东西一搜一大堆啊

public class LCString3 {

public static void getLCString(char[] str1, char[] str2) {

int i, j;

int len1, len2;

len1 = str1.length;

len2 = str2.length;

int maxLen = len1  len2 ? len1 : len2;

int[] max = new int[maxLen];

int[] maxIndex = new int[maxLen];

int[] c = new int[maxLen];

for (i = 0; i  len2; i++) {

for (j = len1 - 1; j = 0; j--) {

if (str2[i] == str1[j]) {

if ((i == 0) || (j == 0))

c[j] = 1;

else

c[j] = c[j - 1] + 1;

} else {

c[j] = 0;

}

if (c[j]  max[0]) { // 如果是大于那暂时只有一个是最长的,而且要把后面的清0;

max[0] = c[j];

maxIndex[0] = j;

for (int k = 1; k  maxLen; k++) {

max[k] = 0;

maxIndex[k] = 0;

}

} else if (c[j] == max[0]) { // 有多个是相同长度的子串

for (int k = 1; k  maxLen; k++) {

if (max[k] == 0) {

max[k] = c[j];

maxIndex[k] = j;

break; // 在后面加一个就要退出循环了

}

}

}

}

}

for (j = 0; j  maxLen; j++) {

if (max[j]  0) {

System.out.println("第" + (j + 1) + "个公共子串:");

for (i = maxIndex[j] - max[j] + 1; i = maxIndex[j]; i++)

System.out.print(str1[i]);

System.out.println(" ");

}

}

}

public static void main(String[] args) {

String str1 = new String("helloworld");

String str2 = new String("hello,world");

getLCString(str1.toCharArray(), str2.toCharArray());

}

}

java字符串最大长度

1.String内部是以char数组的形式存储,数组的长度是int类型,那么String允许的最大长度就是Integer.MAX_VALUE了,2147483647;

又由于java中的字符是以16位存储的,因此大概需要4GB的内存才能存储最大长度的字符串。所以,发送xml批量的需要在oracle数据库中用clob类型,而在java 端可以用String;

2. ResultSet rs = st.executeQuery("select CLOBATTR from TESTCLOB where ID=1");

if (rs.next())

{

java.sql.Clob clob = rs.getClob("CLOBATTR");

inStream = clob.getCharacterStream();

char[] c = new char[(int) clob.length()];

inStream.read(c);

//data是读出并需要返回的数据,类型是String

data = new String(c);

inStream.close();

}

inStream.close();

con.commit();

java求最大公共子串

二楼改的

c = b.substring(i,j-1);

之后下标越界没了。

程序无法出结果,中间有死循环。当while语句执行完之后j是a.length();然后是执行内循环for语句for(j=b.length()-1;j0;j--) 此时只比较J0;。。。。好像是个死循环。最内层的循环可以在加一个int k来控制。多次运行导致cpu上升至100%的。

提供一种矩阵算法,这是LCS的一种算法:

public class stringCompare {

/**求最长匹配子字符串算法

str数组记录每行生成的最大值strmax

max数组记录str数组最大时所处的列号nummaxj

最大子字符串为substring(nummax-strmax+1,strmax+1)

*/

public static void main(String[] args) {

String s1="asdfgxxcvasdfgc";

String s2="asdfxxcv";

int m=s1.length();

int n=s2.length();

int k=0;

int nummax=0;

int []str=new int[m];

int []max=new int[m];

int []num=new int[m];

for(int i=0;im;i++) //生成矩阵数组

for(int j=n-1;j=0;j--)

{

if(s1.charAt(i)==s2.charAt(j))

if(i==0||j==0)

{

num[j]=1;

max[i]=j;

str[i]=1;

}

else

{

num[j]=num[j-1]+1;

if(max[i]num[j])

{

max[i]=j;

str[i]=num[j];

}

}

else

num[j]=0;

}

for(k=0;km;k++) //求str数组的最大值

{

if(nummaxstr[k])

{

nummax=str[k];

}

}

for(k=0;km;k++)

if(nummax==str[k])

System.out.println(s2.substring(max[k]-str[k]+1,max[k]+1));

}

}

关于最大公共字符串java和最长公共字符串的介绍到此就结束了,不知道你从中找到你需要的信息了吗 ?如果你还想了解更多这方面的信息,记得收藏关注本站。

The End

发布于:2022-11-30,除非注明,否则均为首码项目网原创文章,转载请注明出处。