2013-12-09 59 views
0
protected void intFinder(int k, String inputLine) { 
     int legnth = inputLine.length(); 
     Integer extractedNumber = null; 
     for (int i = 0; i < legnth; i++) { 
      Character character = inputLine.charAt(i); 
      if (character.equals(":")) { 
       i++; 
       extractedNumber += character; 
       character = inputLine.charAt(i); 
      } else if (character.equals(",")) { 
       i++; 
       character = inputLine.charAt(i); 
       while (Character.isDigit(character)) { 
        extractedNumber += character; 
        i++; 
        character = inputLine.charAt(i); 
       } 

      //code ommited 

我想3字节是字母和数字的混合字符串,例如avfds:10,5,14但如果character.equals(“ :“)永远不会显示为真实,我不知道为什么。感谢您的帮助使用数字和字母在字符串中提取整数

INT k为以后使用的开关在使用字符不应该在这一点上

+0

'等于()'通常是“类意识”等等'String'绝不等于'Character' – 2013-12-09 17:46:41

回答

0

相关,请尝试使用,而不是一个简单的引号(')双引号(“)

+0

干杯是:工作的双引号是特定类型和单都没有在Java中意味着什么? – user1642671

+0

双引号用于字符串和简单的字符,因此很简单。很高兴它的工作。 –

0
for (String s : "avfds:10,5,14".split(":")[1].split(",")) 
    System.out.println(s); 

输出:

10 
5 
14 

或:

System.out.println(Arrays.asList("avfds:10,5,14".split(":")[1].split(","))); 

输出:

[10, 5, 14] 
+0

他希望'整数'不是字符串.. – 2013-12-09 18:02:13

+0

这种方式的工作原理和更快的大多数情况下只是做int i = Integer.parseInt(s);会给你每个人的整数。 (即时做不同的原因)我会upvote,但我没有确定代表 – user1642671

+0

,感谢评论 –

0

对于某些guava

package com.stackoverflow.so20477116; 

import com.google.common.base.CharMatcher; 
import com.google.common.base.Function; 
import com.google.common.base.Splitter; 
import com.google.common.collect.Iterables; 
import com.google.common.collect.Lists; 
import com.google.common.primitives.Ints; 

import java.util.List; 

public class Extract { 

    private static final Splitter SPLITTER = Splitter.on(CharMatcher.JAVA_DIGIT.negate()).omitEmptyStrings(); 

    public static void main(final String[] args) 
    { 
     final List<Integer> result = Lists.newArrayList(Iterables.transform(SPLITTER.split("avfds:10,5,14"), ToInt.INSTANCE)); 
     System.out.println(result); // [10, 5, 14] 
    } 

    // String => Integer 
    private static enum ToInt implements Function<String, Integer> { 
     INSTANCE; 

     @Override 
     public Integer apply(final String input) 
     { 
      return input == null ? null : Ints.tryParse(input); 
     } 
    } 
} 

参考文献:

相关问题