【问题标题】:How to count the number of sub string from a split in java如何从java中的拆分中计算子字符串的数量
【发布时间】:2012-02-29 13:46:32
【问题描述】:

我的 java 类中有这段代码

mystring  = mysuperstring.split("/");

我想知道从拆分中创建了多少子字符串。

在正常情况下,如果我想访问第一个子字符串,我就写

mystring[0];

另外,我想知道mystring[5]是否存在。

【问题讨论】:

    标签: java string split


    【解决方案1】:

    我想知道从拆分中创建了多少子字符串。

    由于mystring是一个数组,你可以简单地使用mystring.length来获取子字符串的数量。

    另外,我想知道mystring[5]是否存在。

    为此:

    if (mystring.length >= 6) { ... }
    

    【讨论】:

    • 所以我想检查 mystring[5] 是否存在,我必须写 if(mystring.length==5) { do something }
    • @sameer: if (mystring.length >= 6) { ... }
    【解决方案2】:
    mystring  = mysuperstring.split("/");
    int size = mystring.length;
    

    请记住,数组是零索引的,所以当长度 = 5 时,最后一个元素将以 4 为索引。

    【讨论】:

      【解决方案3】:

      这是一种计算子字符串的简单方法

      word.split('/').length;
      

      您可以查看此实现的示例here

      【讨论】:

        【解决方案4】:

        试试这个并告诉我它是否有效。

        import java.util.regex.Pattern;
        
        public class CountSubstring {
            public static int countSubstring(String subStr, String str){
                // the result of split() will contain one more element than the delimiter
                // the "-1" second argument makes it not discard trailing empty strings
                return str.split(Pattern.quote(subStr), -1).length - 1;
            }
        
            public static void main(String[] args){
                System.out.println(countSubstring("th", "the three truths"));
                System.out.println(countSubstring("abab", "ababababab"));
                System.out.println(countSubstring("a*b", "abaabba*bbaba*bbab"));
            }
        }
        

        【讨论】:

          【解决方案5】:

          我认为您必须阅读有关拆分和数组的内容,请找到链接。

          如果您了解 split function,它会返回 Array of String

          现在你应该阅读Array and its size

          【讨论】:

            【解决方案6】:

            我想演示一个虚拟令牌验证。所以我尝试通过点(.split。它没有用。所以,我想知道并检查了一个小时没有运气。过了一会儿,当我随机尝试时,我在点之前添加了转义字符,感谢上帝它起作用了:D。

            原因是split 将字符串作为正则表达式。我在写answer here时检查了原因:

            您正在拆分正则表达式 .,这意味着“任何字符”

            int len = accessToken.split("\\.").length;
            

            我想检查的字符串

            String accessToken = Bearer 1111.1111.11111 // demonstration purpose dumy
            

            输出:

            3
            

            【讨论】:

              猜你喜欢
              • 1970-01-01
              • 1970-01-01
              • 2017-10-20
              • 2013-10-14
              • 2020-09-10
              • 1970-01-01
              • 2018-08-23
              • 1970-01-01
              • 1970-01-01
              相关资源
              最近更新 更多