2016-08-04 53 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(","))); 
相关问题