2016-08-27 35 views
-2

我想要做的是取一串數字,如「8675309」,然後根據字符串中的不同位數進行一些數學運算。我會很高興得到8,6,7,5,3,0,9,然後使用索引,但他們似乎給出了奇怪的數字(如51)到目前爲止。我只是想結束做myArray [0] + myArray [3] =輸出(這個例子將是8 + 5 = 13)來自字符串的int []或來自char []的int []

我擁有6本關於Java的書,沒有一本覆蓋這個。網絡上有超過6個小時(google,stackoverflow,youtube等),無處可以找到它。 - 無論我如何搜索,我都會得到一切結果。

從已填充,爲字符串分隔已,從字符串拋棄一切,但數字排列,等等

我嘗試使用/修改我所發現的最好的,我可以想出與日食大吼我不能將字符轉換爲int。

String str = cn; 
    char[] charArray = str.toCharArray(); 

    String number = String.valueOf(cn); 
    int[] digits1 = number.toCharArray(); 

    int newInt = charArray[0]; 
    System.out.println(newInt); 

「在線程異常 」主要「 java.lang.Error的:未解決的問題,編譯: 類型不匹配:不能從的char []轉換爲int []」

+0

你可以給'int'分配一個'char',但是你不能把'char []'賦給'int []'。你有沒有讀過你的6本書? – Kayaman

+1

'int [] digits = str.chars()。map(n - > n - '0')。toArray();' –

+0

@TimBiegeleisen哇,很好的發現多年前的複製!我已經忘記了我已經回答了這個問題(並且我的舊回答也很落伍)。謝謝! – dasblinkenlight

回答

2

您可以將單個char通過調用Character.digit(myChar, 10)代表十進制數到int。在從toCharArray()得到的結果的循環調用此方法來構造的int是你想要的數組:

String str = cn; 
char[] charArray = str.toCharArray(); 
int[] digits = new int[charArray.length()]; 
for (int i = 0 ; i != digits.length() ; i++) { 
    digits[i] = Character.digit(charArray[i], 10); 
} 
0

您可以將其轉換爲字符數組,然後分析每個得到這樣的字符串個別數字這些字符轉換成數字。

String text = "8675309"; 
    char[] characters = text.toCharArray(); 
    List<Integer> digits = new ArrayList<>(); 

    for(char character : characters) { 
     digits.add(Character.getNumericValue(character)); 
    } 

您可以通過迭代列表來訪問每個數字。