簡體   English   中英

很難弄清楚java中split函數的工作

[英]Having difficultly in figuring out the working of split function in java

我要拆分的字符串是“他是一個非常非常好的男孩,不是嗎?”。 當我僅使用split函數時,輸出還在字符串中的“ boy”之后打印了空格。 為了消除這一點,我在代碼中放入了if條件,然后代碼在boy之后不輸出任何內容。

有人可以告訴我為什么會這樣嗎? 另外,如果有比使用番石榴更好的方法來解決此問題。

public class Solution {


    public static void main(String[] args) 
    {


      Scanner scan = new Scanner(System.in);
      String s=scan.nextLine();

      String []tokens = s.trim().split("[\\s,'?]");
      int n = tokens.length;
        System.out.println(n);
      for(int i=0;i<tokens.length;i++)
      {
          if(tokens[i].charAt(0)==' ')
          {
             continue;
          }

          System.out.println(tokens[i]);
       }

    }
}

您要告訴split拆分列表中的單個字符。 如果您希望它拆分成一個或多個 (例如,這些字符的排列),請在其后添加+以表示“之前有一個或多個事物”:

String []tokens = s.trim().split("[\\s,'?]+");
// Here ----------------------------------^

現場例子

(FWIW,在要分割的字符列表上包含'似乎有點奇怪,但是我們不知道您的用例,所以...)

檢查此解決方案。

  String str="He is a very very good boy, isn't he?";
       String[] Val = str.split("[' ,@!_.?]+");
       System.out.println(Val.length);
       for(String token :Val) {
              System.out.println(token);}}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM