【问题标题】:How can I select the substring beginning with the first index and up to the first comma?如何选择从第一个索引开始到第一个逗号的子字符串?
【发布时间】:2023-03-29 08:52:01
【问题描述】:

例如,我有以下字符串:

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

解决方案

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

【问题讨论】:

  • 使用子字符串(开始,结束)
  • 就这样吧:"ABC123, CBA 123, cba.cba".split(",")[0]
  • @RémyBaron 这将创建一个字符串数组。
  • 感谢@MuratK.,这就是解决方案。
  • @Susannah Potts : No "ABC123, CBA 123, cba.cba".split(",") 是一个字符串数组,但是 [0] 它是第一个元素(所以是一个字符串)->这就是他想要的

标签: java substring indexof


【解决方案1】:

我猜你可以先拆分字符串:

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

在你拿到第一个之后

String word = parts[0]

【讨论】:

  • 我只想补充一点,这个解决方案需要遍历整个字符串才能找到一个特定的部分,在这种情况下它被放置在它的开头。 substring/indexOf 组合在这里更快。
  • 这个解决方案可能更有用,因为您也需要保留所有值,它们将在字符串数组中
【解决方案2】:

indexOf 将为您提供指定子字符串“,”的第一次出现的索引。 subString 将从开头(零索引)开始获取部分字符串,直到所需位置,在您的情况下,该位置是您从 indexOf 获得的索引。请注意,EXCLUSIVE 中的结束索引表示直到该索引但不包括该索引。

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

【讨论】:

    【解决方案3】:

    您可以使用 StringBuilder 轻松完成此任务。

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

    【讨论】:

    • 我一直被教导字符串操作应该通过 StringBuilder 来完成。
    • 谢谢朋友!我没有使用 StringBuilder,但这帮助我找到了解决方案!
    • "...字符串操作应该通过 StringBuilder" 但您不是在操作字符串,而是在旧字符串的基础上创建新字符串。请记住,String 是不可变的,因此即使您想要也无法对其进行操作。查找字符串的特定部分不是操作。
    • 这是我给出的解决方案,cmets 不是长时间争论的地方。
    猜你喜欢
    • 1970-01-01
    • 2014-05-19
    • 1970-01-01
    • 1970-01-01
    • 2014-05-05
    • 1970-01-01
    • 2021-11-16
    • 2019-10-07
    • 1970-01-01
    相关资源
    最近更新 更多