2016-05-06 2 views
1

как печатать зеркальное значение алфавита в java?Как напечатать abc в zyx (значения зеркала в альфа) в java

public class Alphamirror { 
    public static void main(String[] args) { 
     // TODO Auto-generated method stub 
     Scanner sc=new Scanner(System.in); 
     String s1=sc.next(); 
     String s2=""; 
     char c; 
     int i; 
     for(i=0;i<s1.length();i++) 
      if(s1.charAt(i)<'m') 
       s2=s1.charAt(i)+ 
      else if(||s1.charAt(i)>'z') 
    } 
+1

ОП, у вас есть история, не отвечающая вашим вопросам. Вы не отвечаете на комментарии и не принимаете и не комментируете предлагаемые ответы. SO - это сеть, которая также зависит от обратной связи для оценки качества и применимости предлагаемых ответов. Пожалуйста, последуйте за ответами и принимайте/повышайте ответы в будущем. Люди использовали свое свободное время, чтобы помочь вам; по крайней мере, проявить некоторую любезность, чтобы признать это. Это просто щелчок мышью. – nautical

ответ

1

Вы могли бы написать функцию, которая будет отражать буквы, как следующее:

static char alphaMirror(char c) { 
    int maxAdvance = 25; 

    int diff = c - ((c > 'Z') ? 'a' : 'A'); 

    int advance = maxAdvance - 2 * diff; 

    return (char) (c + advance); 
} 

Вы можете назвать его, например, от основной, как:

public static void main(String[] args) { 
    String s = "abcdefghijklmnopqrstuvwxyz"; 
    String s2 = "ABCDEFGHIJKLMNOPQRSTUVWXYZ"; 

    for (int i = 0; i < s.length(); i++) { 
     System.out.println(i + ": " + alphaMirror(s.charAt(i))); 
    } 

    for (int i = 0; i < s.length(); i++) { 
     System.out.println(i + ": " + alphaMirror(s2.charAt(i))); 
    } 
} 
2

вы можете выяснить, индекс зеркального алфавита и напечатать это. см ниже код ..

public static void main (String[] args) throws java.lang.Exception 
    { 
    // your code goes here 
    Scanner sc=new Scanner(System.in); 
    String s1=sc.next(); 

    for(int i = 0; i < s1.length(); i++) { 
     int index = 'z' - s1.charAt(i); 
     System.out.print((char)('a' + index)); 
    } 
} 
0

Я хотел бы сделать это следующим образом:

import java.util.HashMap; 
import java.util.Map; 
public class Temp { 

    public static Map<Character, Character> prepareMirrorMap() { 
     Map<Character, Character> charMap = new HashMap<>(); 
     charMap.put(Character.valueOf('A'), Character.valueOf('Z')); 
     charMap.put(Character.valueOf('B'), Character.valueOf('Y')); 
     charMap.put(Character.valueOf('C'), Character.valueOf('X')); 
     charMap.put(Character.valueOf('D'), Character.valueOf('W')); 
     return charMap; 
    } 
    public static void main(String[] args) { 
     String temp = "ABCD"; 
     System.out.println(ConvertToMirrorString.convertToMirror(temp)); 
    } 
} 

class ConvertToMirrorString { 
    private static Map<Character, Character> charMap; 

    static { 
     charMap = Temp.prepareMirrorMap(); 
    } 

    public static String convertToMirror(String inputString) { 
     StringBuilder temp = new StringBuilder(); 
     for (Character c : inputString.toCharArray()) { 
      temp.append(charMap.get(c)); 
     } 
     return temp.toString(); 
    } 
} 

Это рабочий кусок кода, однако вам нужно добавить больше данных для отображения.