2013-06-28 2 views
1

Я пытаюсь найти способ, как сравнить две строки и обновить первый, когда второй имеет больше. Напримерсравнить и обновить строку

String A="This is a statement!"; 
String B="This is a statement! Good luck!"; 
if(A<B{ //B has more letters 
     //Upgrade A } 
    else{ //Upgrade B 
     } 

я имею в виду обновление не перезаписывать, как A = B. Мои строки имеют обычно много линий. Я хочу сохранить значение строки и просто вставить новые вещи из другой строки. Есть ли у кого-то идея?

EDIT: Благодарим вас за приятные ответы. К сожалению, я не выдал его более ясно, извините, моя вина. Моя проблема в том, что я теперь знаю, где эти изменения, строка может выглядеть следующим образом:

String A: 
A 
B 
C//Good morning, sir 
D//A comment 
E 


String B: 
A 
B//Yes 
C 
D 
DD 
E 

The result should be: 
A 
B//Yes 
C//Good morning, sir 
D//A comment 
DD 
E 
+1

Что такое обновление? Кроме того, что происходит, если строки не имеют префикса? Обратите внимание, что Java не имеет перегрузки оператора, и даже если это имеет место, '<' скорее всего сравним лексическое упорядочение. –

+1

Этот код не компилируется. –

+0

Напишите «String length Java», и вы будете поражены результатами! – Maroun

ответ

2

Я думаю, вам нужно что-то вроде этого:

String A="This is a statement!"; 
String B="This is a statement! Good luck!"; 

if (A.length() < B.length()){ //B has more letters 
     A += B.subString(A.length(), B.length()-1); 
} else{ 
     B += A.subString(B.length(), A.length()-1); 
} 

Надеется, что это то, что вы ищете :).

+0

Спасибо.Конечно, это лучшее решение проблемы, которую я описал при надзоре. Я отмечу это как решение наверняка. – Hayabusa

0

Сравнение строк по длине, используя string.length() Например

public class Test{ 
    public static void main(String args[]){ 
     String Str1 = new String("This is a statement!"); 
     String Str2 = new String("This is a statement! Good luck!"); 

    if(Str1.length() > Str2.length()) 
     Str2 += Str1; 
    else 
     Str1 += Str2; 
} 
0
String A = "This is a statement!"; 
String B = "This is a statement! Good luck!"; 
if (B.length() > A.length()) { //B has more letters 
    //Upgrade A 
} else { 
    //Upgrade B 
} 
+0

** epic facepalm ** – SeniorJD

+0

@SeniorJD о, мой хороший господин не обращал внимания .... – sunrize920

+1

copy-paste - это зло =) – SeniorJD

1

Как об этом:

if(A.length() < B.length() { //B has more letters 
    //Upgrade A 
} 
else { //Upgrade B 

} 
+0

+1 за комментарий к возрождению :) –

0

сравнить Strings по длине:

if (A.length() > B.length()) { 
    B = A; 
} else { 
    A = B; 
} 
0
if (B.length() > A.length()) { // upgrade B as it's longer 
} else if (A.length() > B.length()) { // upgrade A as its longer 
} else if (A.length() == B.length()) { // not sure what to do here as they're of equal length 
} 

Помимо нулевому проверки, я считаю, что это включает в себя все возможные случаи.

0

Я имею в виду, что вы будете использовать комбинацию из subsString() и length(). Возьмите b.subString(a.length, b.length-1) и соедините эту подстроку с номером a

0

Используйте String.length(), чтобы сравнить размер, а затем завершить конец самой длинной цепочки.

String a="This is a statement!"; 
String b="This is a statement! Good luck!"; 

if(b.length() > a.length()) { 
    a = a.concat(b.substring(a.length())); 
} 
else if(a.length() > b.length()) 
{ 
    b = b.concat(a.substring(b.length())); 
} 
0

Надеюсь, что это поможет.

if(A.contains(B) && !A.equals(B)) 
{ 
    A += B.substring(A.length(),B.length()); 
}