2017-02-09 162 views
-6

我必須創建一個提供了字符串輸入的java方法,並且它必須返回一個字符串。替換字符串方法中的每個字母java

該方法必須採用輸入字符串並將該字符串中的每個字母替換爲表中的另一個字母。

例如表是:

Input | Output 
a  | n 
c  | H 
h  | B 
@  | q 

,如果輸入的是「啊哈@」,那麼輸出必須是「nnBBq」

請幫助這個Java方法感謝。以及如何可以有效地在java中存儲表。真正的表格更長,即35個術語。感謝

我曾經嘗試這樣做...

public String func(String s){ 
    for (int i=0; i<5; i++){ 
     //what to do? 
    } 
} 

問候, 蓋爾

+6

你要求作業的答案? ;) – MikaelF

+0

您可以使用散列圖作爲表並遍歷字符串來替換 – mc20

+0

有很多不是很複雜的方法來實現它。我們可以幫助您更進一步,但我們需要知道什麼阻止了您。你能不能試着描述你到目前爲止的想法? – Pshemo

回答

0

假設你的角色轉換表存儲在一個Map<Character, Character>,這個應該這樣做:

Map<Character, Character> map = new HashMap<>(); 
StringBuffer result = str.chars() 
    .mapToObj(i -> map.get((char)i) == null ? String.valueOf((char) i) 
      : String.valueOf((char) map.get((char)i))) 
    .collect(Collectors.reducing(new StringBuffer(), StringBuffer::new, StringBuffer::append)); 

此代碼從String獲得代表個人charIntStream,使用t他String#chars方法。然後它貫穿其中的每一個,在地圖中查找它們並在需要時替換它們,最後使用可變類StringBuffer執行突變減少。如果您需要結果爲String,則只需調用其toString方法即可。

相關問題