Попробуйте ниже ... Протестировано и работает в JAVA ...
public class FindString {
public static void main(String[] args) {
String myString01 = "OneString";
String myString02 = "StringTwo";
String commonString = "";
for (int i = 0; i < myString01.length(); i++) {
if (myString02.indexOf(myString01.substring(i)) >= 0) {
commonString = myString01.substring(i);
break;
}
}
System.out.println("common is " + commonString);
String firstPart = myString01.substring(0, myString01.indexOf(commonString));
String secondPart = myString02.substring(myString02.indexOf(commonString) + commonString.length());
String finalString = firstPart + commonString + secondPart;
System.out.println("Final String of " + myString01 + " & " + myString02 + " is " + finalString);
}
}
Примечание
Если вы хотите сделать их строчными, а затем сравнить, используйте .toLowerCase()
.
Обновление 1
Вывод, который у меня есть,
common is String
Final String of OneString & StringTwo is OneStringTwo
И я верю, что это то, что вы хотите ...
Обновление 2
Некоторые продвинутые выше приведены ниже.
public class FindString {
public static void main(String[] args) {
String myString01 = "StringOne";
String myString02 = "TwoString";
// String myString01 = "StringOne";
// String myString02 = "StringTwo";
// String myString01 = "OneString";
// String myString02 = "TwoString";
// String myString01 = "OneString";
// String myString02 = "StringTwo";
System.out.println("First String is = " + myString01);
System.out.println("Second String is = " + myString02);
String commonString = "";
for (int i = 0; i < myString01.length(); i++) {
if (myString02.indexOf(myString01.substring(i)) >= 0) {
commonString = myString01.substring(i);
break;
}
}
if (commonString.isEmpty()) {
for (int i = 0; i < myString02.length(); i++) {
if (myString01.indexOf(myString02.substring(i)) >= 0) {
commonString = myString02.substring(i);
break;
}
}
}
String firstPart;
if (myString01.indexOf(commonString) > 0) {
firstPart = myString01.substring(0, myString01.indexOf(commonString));
} else {
firstPart = myString01.substring(myString01.indexOf(commonString) + commonString.length());
}
String secondPart;
if (myString02.indexOf(commonString) > 0) {
secondPart = myString02.substring(0, myString02.indexOf(commonString));
} else {
secondPart = myString02.substring(myString02.indexOf(commonString) + commonString.length());
}
System.out.println("First Part = " + firstPart);
System.out.println("Second Part = " + secondPart);
System.out.println("Common Part = " + commonString);
String finalString = firstPart + commonString + secondPart;
System.out.println("Final String of " + myString01 + " & " + myString02 + " is " + finalString);
}
}