2013-12-09 60 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); 
     } 
    } 
} 

參考文獻:

相關問題