2015-09-09 68 views
0

首先,我的英語。JAVA給一個字符串的每個字符的數值

我試圖得到一個字符串的每個字母,併爲每個字母,給一些int值。

例如:name = Joao。其中J = 3,o = 1,a = 4,o = 1。

我以後會用這個數字來進行一些計算。

這就是我得到迄今:

static String separador(String nome){ 
     name = nome; 
     char[] letras; 
     letras = name.toCharArray(); 
     int qtd = letras.length; 
     String fullName = ""; 

     for(int i=0; i<qtd; i++) 
     { 
      fullName = fullName + " " + letras[i]; 
     } 

     return fullName; 

    } 

這讓我的每個字符separatedly。但可以休息。

有人可以幫我嗎?

+0

您應該改善的問題。我們需要更多信息來幫助您獲得您想要的內容。 –

+1

如何分配這些值:「J = 3,o = 1,a = 4,o = 1」?選擇數值時是否有特殊要求或是隨機的? – shan1024

回答

1
  1. 創建地圖,將所有字符(A至Z)和像對應的數字存儲:

    Map m = new HashMap(); 
    m.put('A', 0); 
    m.put('B', 1); 
    
  2. 遍歷您輸入的字符和檢查字符是否在上述地圖存在或不 。如果存在則創建一個第二個圖,字符添加到第二個地圖

    static String separador(String nome){ 
    name = nome; 
    char[] letras; 
    Map tempMap = new HashMap(); 
    Map m = new HashMap(); 
    m.put('A', 0); 
    m.put('B', 1); 
    letras = name.toCharArray(); 
    int qtd = letras.length; 
    String fullName = ""; 
    
    for(int i=0; i<qtd; i++) 
    { 
        if(m.containsKey(letras[i]) 
        tempMap.put(letras[i], m.get(letras[i])) 
    } 
    
    return tempMap; 
    

    }

+0

非常感謝我的朋友,它幫助了很多人。但是我很難發現這個詞的所有特徵。例如:如果名稱是antonio,它會顯示size()= 5,coz char N和char O重複。我需要顯示名稱的所有字符和值,即使它是重複的。 有辦法嗎? tnk非常。 – Brugo

+0

哦,是的..Sorry Buddy ..我錯過了。在這種情況下,地圖不會工作,因爲地圖不允許重複鍵。因此,不要使用第二個tempMap,您可以使用Arraylist。 (m.containsKey(letras [i]){ \t String s = String.valueOf(letras [i])+「---」+ new Integer(m.get(letras [i]))。 toString(); tempList.add(s) \t}' – Rehman

相關問題