2016-08-04 34 views
1

例如,我有以下字符串:如何選擇以第一個索引開頭並以第一個逗號開頭的子串?

ABC123, CBA 123, cba.cba 

我怎麼可以只選擇ABC123,第一個逗號後發射什麼?

出於某種原因,我已經能夠讓它以相反的方式工作,但不是正確的方式。 \ _0.o_/

這裏的一些源代碼,即使它不是真正相關的,因爲它不工作:

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

這將產生

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

使用字符串(開始,結束) –

+0

只是做到這一點: 「ABC123,CBA 123,cba.cba」 .split( 「」)[0] –

+0

@RémyBaron這將創建一個字符串數組。 –

回答

0

你可以很容易地使用StringBuilder來完成這個任務。

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

你不需要StringBuilder這個.. –

+0

我總是教字符串操作應該通過一個StringBuilder來完成。 –

+1

感謝朋友!我沒有使用StringBuilder,但這幫助我發現瞭解決方案! –

1

我想你可以先分割字符串:

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

及後你可以得到firt一個

String word = parts[0] 
+2

我只是想補充一點,這個解決方案需要遍歷整個字符串,只是爲了找到一個特定的部分,在這種情況下,它放在它的開始。 'substring' /'indexOf'組合在這裏更快。 – Pshemo

+0

@Pshemo正確。 –

+0

此解決方案可能更有用,它需要保留所有值,它們將位於字符串數組中 –

1

的indexOf會給你的第一次出現的索引指定的子字符串是「,」。 和子字符串將從開始處(零索引處)開始獲取部分字符串,直到所需的位置,在您的情況下,您將從索引處獲得索引indexOf。請注意,EXCLUSIVE中的結束索引意味着達到該索引但不包括該索引。

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