StringTokenizer在数字末尾不显示0

时间:2012-07-30 15:49:51

标签: java stringtokenizer

我正在使用Java,我正在使用StringTokenizer以获得我的String的一部分,但问题是当我使用“StringTokenizer”时,我的结果的一部分没有出现这是我的java代码:

for(String iopp:opp){
                   StringTokenizer tokenizer = new StringTokenizer(iopp,"form:blocConfigurations:configurations:0:parametrage:options:");
                   while(tokenizer.hasMoreTokens()){
                   ind.add(tokenizer.nextToken());

                   }
               }   

               logger.info("Mes indices sont :"+ind); 

并在我的控制台中:

   what was it :[form:blocConfigurations:configurations:0:parametrage:options:1,            form:blocConfigurations:configurations:0:parametrage:options:6, form:blocConfigurations:configurations:0:parametrage:options:9, form:blocConfigurations:configurations:0:parametrage:options:17, form:blocConfigurations:configurations:0:parametrage:options:20, form:blocConfigurations:configurations:0:parametrage:options:21, form:blocConfigurations:configurations:0:parametrage:options:22]
   17:13:45,876 INFO  [com.sfr.price.functionalTest.scenario.impl.AJLINGE.etapeParametrerOption](821) [] Mes indices sont :[1, 6, 9, 17, 2, 21, 22]

StringToknizer工作得非常好,但我不明白为什么在这个元素中              形式:blocConfigurations:配置:0:parametrage:选择:20        它只显示2而不是20

提前致谢

2 个答案:

答案 0 :(得分:8)

阅读javadoc:StringTokenizer form:blocConfigurations:configurations:0:parametrage:options:中的每个字符都是分隔符。 0也是分隔符,因为此字符串包含0StringTokenizer不是此任务的正确工具。您可以尝试使用String.split

String[] tokens = iopp.split("form:blocConfigurations:configurations:0:parametrage:options:");

但要小心,因为split将正则表达式视为delimene。如果您的分隔符字符串中有一些特殊字符,则需要将其转义。

答案 1 :(得分:0)

new StringTokenizer(str,delim)中每个delim字符都被视为单独的分隔符。

您应该考虑使用String.indexOf(String str, int fromIndex)