我和我有两个字符串:
s1="MICROSOFT"
s2="APPLESOFT"
Run Code Online (Sandbox Code Playgroud)
我需要比较字符串并从第二个字符串中删除重复的部分(总是朝向末尾).所以我应该把"MICROSOFT"和"APPLE"作为输出.
我已逐字符地比较了两个字符串.
String s1 = "MICROSOFT";
String s2 = "APPLESOFT";
for(int j=0; j<s1.length(); j++)
{
char c1 = s1.charAt(j);
char c2 = s2.charAt(j);
if(c1==c2)
System.out.println("Match found!!!");
else
System.out.println("No match found!");
}
Run Code Online (Sandbox Code Playgroud)
它应检查字符串,如果两个字符串在字符串结尾之前具有相同的字符,那么我需要从第二个字符串中删除该冗余部分,在这种情况下为SOFT.但我想不出如何从这里开始.
可能会有更多重复...但我们必须只删除那些持续相同的重复.如果我有APPWWSOFT和APPLESOFT,我应该在第二个字符串中再次获得APPLE,因为我们得到的LE与WW之间不同
你能帮帮我吗?
我绞尽脑汁后解决了我的问题。请随时纠正/改进/细化我的代码。该代码不仅适用于“MICROSOFT”和“APPLESOFT”输入,还适用于“APPWWSOFT”和“APPLESOFT”等输入(我需要从上述两个输入中的末尾删除连续的重复项 - SOFT)。我正处于学习阶段,我将不胜感激任何宝贵的意见。
public class test
{
public static void main(String[] args)
{
String s1 = "MICROSOFT";
String s2 = "APPLESOFT";
int counter1=0;
int counter2=0;
String[] test = new String[100];
test[0]="";
for(int j=0; j<s1.length(); j++)
{
char c1 = s1.charAt(j);
char c2 = s2.charAt(j);
if(c1==c2)
{
if(counter1==counter2)
{
//System.out.println("Match found!!!");
test[0]=test[0]+c2;
counter2++;
//System.out.println("Counter 2: "+counter2);
}
else
test[0]="";
}
else
{
//System.out.print("No match found!");
//System.out.println("Counter 2: "+counter2);
counter2=counter1+1;
test[0]="";
}
counter1++;
//System.out.println("Counter 1: "+counter1);
}
System.out.println(test[0]);
System.out.println(s2.replaceAll(test[0]," "));
}
}
Run Code Online (Sandbox Code Playgroud)