2016-08-04 27 views
1

Zum Beispiel habe ich die folgende Zeichenfolge:Wie kann ich die Teilzeichenfolge beginnend mit dem ersten Index und bis zum ersten Komma auswählen?

ABC123, CBA 123, cba.cba 

Wie kann ich nur ABC123 wählen, alles nach dem ersten Komma emittieren?

Aus irgendeinem Grund konnte ich es auf die umgekehrte Weise arbeiten, aber nicht den richtigen Weg. \ _0.o_/

Hier einige Quellcode, auch wenn es nicht wirklich relevant ist, weil es nicht funktioniert:

private void resultListValueChanged(javax.swing.event.ListSelectionEvent evt) {           
    // TODO add your handling code here: 
    searchText.setText(resultList.getSelectedValue().substring(resultList.getSelectedValue().indexOf(",")+1).trim());  
} 

Dies erzeugt

CBA 123, cba.cba 

SOLUTION

private void resultListValueChanged(javax.swing.event.ListSelectionEvent evt) {           
    // TODO add your handling code here: 
    searchText.setText(resultList.getSelectedValue().substring(0,resultList.getSelectedValue().indexOf(",")));  
} 
+2

Verwendung substring (Anfang, Ende) –

+0

genau das zu tun: "ABC123, CBA 123, cba.cba" .split ("") [0] –

+0

@ RémyBaron, dass ein String-Array erstellen würde. –

Antwort

0

Sie kann StringBuilder verwenden, um dies ziemlich einfach zu erreichen.

StringBuilder sb = new StringBuilder(str); 
String target = sb.substring(0,sb.indexOf(",")); 
+3

Sie brauchen nicht StringBuilder für diese .. –

+0

Ich wurde immer gelernt, String-Manipulation sollte über einen StringBuilder erfolgen. –

+1

Danke Freund! Ich habe den StringBuilder nicht benutzt, aber das hat mir geholfen, die Lösung zu finden! –

1

Ich denke, man die Zeichenfolge zuerst geteilt könnte:

String[] parts = string.split(",") 

Und nachdem Sie die firt ein

String word = parts[0] 
+2

Ich möchte nur hinzufügen, dass diese Lösung Iteration über die gesamte Zeichenfolge benötigt, nur um einen bestimmten Teil zu finden, der in diesem Fall an seinem Anfang platziert wird. 'substring' /' indexOf' Kombination ist hier schneller. – Pshemo

+0

@ Pshemo richtig. –

+0

Diese Lösung könnte nützlicher sein, wenn Sie alle Werte beibehalten möchten, sie befinden sich im String-Array –

1

indexOf Sie den Index des ersten Auftretens geben bekommen konnte von der angegebene Teilstring, der "," ist. Und subString erhalten Teil Ihrer Zeichenfolge beginnend am Anfang (Index Null) bis zur gewünschten Position, die in Ihrem Fall der Index ist, erhalten Sie von indexOf. Beachten Sie, dass der Endindex in EXCLUSIVE bis zu diesem Index reicht, diesen Index jedoch nicht enthält.

String s = "ABC123, CBA 123, cba.cba"; 
System.out.println(s.substring(0, s.indexOf(",")));