2017-02-09 6 views
-6

文字列入力で提供されるJavaメソッドを作成する必要があり、文字列を返す必要があります。文字列メソッドのすべての文字を置換するjava

このメソッドは入力文字列を受け取り、その文字列内のすべての文字をテーブルの別の文字に置き換える必要があります。このJavaメソッドのおかげで支援してください

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

、入力が「aahhの@」であるならば、出力は

「nnBBq」でなければなりません:たとえば

を表です。そして、どのようにテーブルを効率的に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からchar個を表すIntStreamを取得します彼はString#chars方法です。それから、マップ内でそれらを探し、必要に応じて置換し、最後に可変クラスStringBufferを使用して変異を減らします。 Stringという結果が必要な場合は、単にtoStringメソッドを呼び出します。

関連する問題