2 Stimmen

Vergleichen Sie und entfernen Sie gleiche Zeichen in zwei Strings in Java und geben Sie die verbleibenden Zeichen als Zahlen aus

Sagen wir, ich habe Benutzereingaben von 2 verschiedenen Namen. Zum Beispiel:

firstName = "Stack Overflow"
secondName = "Stack Exchange"

Was ich tun möchte, ist sie zu vergleichen, das bedeutet, das Wort "Stack" würde entfernt werden, dann werden die verbleibenden Zeichen des Strings als Zahlen ausgegeben.

"overflow" wird als 8 ausgegeben, genauso wie "Exchange", das sollte ebenfalls 8 ausgeben.

Gibt es eine Methode, die ich verwenden kann? Ich bin nur ein Anfänger, daher würde ich eine Methode ohne array oder einige fortgeschrittene Java-Methoden schätzen.

1voto

Makoto Punkte 99743

Einige nützliche Methoden:

Iterationen über die Länge der verschiedenen Zeichen würden Ihnen eine Zahl geben, aber ich bin unsicher, ob Sie die längere Zeichenkette oder die kürzere Zeichenkette ausgeben möchten. (In jedem Fall würde eine Schleife helfen.)

1voto

ulmangt Punkte 5303

Sie könnten versuchen, indem Sie die Zeichen in den beiden Zeichenfolgen schrittweise vergleichen, bis Sie ein Zeichen finden, das sich unterscheidet. An diesem Punkt geben Sie einfach die Länge der Zeichenfolge minus der Anzahl der Zeichen im gemeinsamen Präfix zurück.

Versuchen Sie etwas Ähnliches wie dies (Code nicht getestet, Sie müssen wahrscheinlich einige Anpassungen vornehmen - außerdem gibt dies nur die Länge minus Präfix der ersten Argumentzeichenfolge zurück):

public int stringLength(String s1, String s2)
{
  for (int i = 0; i < Math.min(s1.length(), s2.length()); i++)
  {
    if (s1.charAt(i) != s2.charAt(i))
    {
      return s1.length() - i;
    }
  }

  return s1.length();
}

0voto

RAJNISH YADAV Punkte 91

Wie ich verstehe, möchten Sie gemeinsame Elemente aus beiden Zeichenfolgen entfernen: Wenn ja, hier ist die Lösung: String str1 = "Stack Overflow"; String str2 = "Stack Exchange";

    ArrayList arr1 = new ArrayList();
    ArrayList arr2 = new ArrayList();
        for(int i = 0; i < str1.length(); i++) {
            arr1.add(str1.charAt(i));
        }

        for(int i = 0; i < str2.length(); i++) {
            arr2.add(str2.charAt(i));
        }
        arr1.retainAll(arr1);

     java.util.List chars = Arrays. asList(arr1);
     String str = chars.toString().replace(",","");
 return str;

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X