2017-11-21 2 views
-3

Ich habe bereits eine Zeichenfolge deswie man Zeichenkette mit Scanner ändert?

String abc = "Stack"; 

Jetzt sagen lassen, ich diese Zeichenfolge mit Scanner-Klasse nur ändern möchten! Daher sollte der Benutzer die vorhandene Zeichenfolge in der Konsole sehen können und diese Zeichenfolge dann bearbeiten können. Ich habe das versucht, aber dann ersetzt es nur die bestehende Zeichenfolge.

System.out.println("Edit the below string"); 
System.out.println(abc); 
abc = scanner.nextLine(); 

Wie würde ich es erreichen?

+1

hilft Wenn Sie die Dokumentation der String-Klasse eines der ersten Dinge zu lesen ist, dass Sie lesen [ „Strings konstant sind, ihre Werte können nicht geändert werden, nachdem sie erstellt werden.“] (Https: //docs.oracle.com/javase/7/docs/api/java/lang/String.html) - Nichts kann einen String bearbeiten. Sie können die Variable immer einfach einer neuen Zeichenfolge zuweisen. –

+0

Strings in Java sind unveränderlich, und die Zeile, die von Scanner gelesen wird, ist auch ein String und deshalb unveränderlich. Sie können also in Java nur eine Zeichenfolge durch eine andere ersetzen. Und für den Benutzer, in Ihrem Fall, die Strings in der Konsole gedruckt sind in keiner Weise editierbar an erster Stelle! – anchreg

+0

Das ist in Ordnung, wenn ich die Zeichenfolge nicht bearbeiten kann, kann ich entweder StringBuffer oder StringBuilder verwenden. Aber das ist nicht der Punkt. Ich möchte diese Zeichenfolge nur auf der Konsole bearbeiten. –

Antwort

-2

Nun das Problem ist, sollten Sie nicht mit nur einem String. Ihr Problem ist der Grund StringBuffer wurde erstellt. Ideale Lösung:

Hier ist ein schreckliches Beispiel, wenn Sie Ihren Computer hassen und nur eine Zeichenfolge verwenden können.

String abc = "Stack"; 
while (scanner.hasNext()){ 
    abc += scanner.getLine(); 
    System.out.println(abc); 
} 

Das oben genannte ist eine schreckliche Lösung aus Speichergründen.

Ich hoffe, das

+0

Irgendwelche Gründe für die '-1'? – GetBackerZ

Verwandte Themen