【问题标题】:How not count blank spaces in StringTokenizer如何不计算 StringTokenizer 中的空格
【发布时间】:2017-02-09 09:23:39
【问题描述】:

我有这条线

StringTokenizer tk=new StringTokenizer (b=10," =",true);

我的输出是

b
=
10

这是完美的,但如果我的线路是这样的话

StringTokenizer tk=new StringTokenizer (DEFI b=10," =",true);

我的输出是

DEFI

b
=
10

我不想在 ST 中包含那个空的 o 空白,我怎样才能避免包含空白,因为我想要这种输出

DEFI
b
=
10

【问题讨论】:

    标签: java regex string tokenize stringtokenizer


    【解决方案1】:

    如果可以的话,我建议使用 String.split() 方法:

    String[] tokens = "DEFI b=10".split("(\\s|(?=\\=)|(?<=\\=))");
    

    【讨论】:

      【解决方案2】:

      字符串标记器信任来自指定字符串的字符串标记器:(https://docs.oracle.com/javase/7/docs/api/java/util/StringTokenizer.html)

            public StringTokenizer(String str, String delim, boolean returnDelims)
      

      作为您的参数,您有一个声明 int 值的对象声明,一个作为等号的 delim 和一个为 true 的 delim 标志(它将 delim 字符作为标记返回)

      也许您应该将您的字符串标记器实例重构为以下内容:

           String b = "DDEFI-b-=-10"; //Create the string to be evaluated
      
           String delim = "-"; //Create a delim which serves as a separator
      

      (将字符串定义为“DEFI-b-=-10” - 将为您的分隔符提供正确的间距)

           StringTokenizer tk= new StringTokenizer (b, delim);
      
          /* Loop through the elements printing out the specified string */
      
           while(tk.hasMoreElements()) {
                System.out.println(tk.nextToken());
             }
      
      
      
           //Result
           DEFI
           b
           =
           10  
      

      【讨论】:

      • 所以,我需要在每个字符串中加上“-”吗?
      • 它可以是任何字符.. delim 只是代表你的字符串之间的分隔符
      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2013-03-24
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多