如何翻转一个字母?

Sur*_*tta 13 java char character-encoding

在这里,我试图将英文字母颠倒翻转为我的邮件模板.

好吧,我可以手动获取它.我正在做的是现在手动

就像

 content.append("?"); //actual h letter.
 content.append("?")// actual e letter.
Run Code Online (Sandbox Code Playgroud)

所以我的问题是,是否有任何技巧/方法/任何线索以程序化的方式做到这一点?

我现在正在做的是

switch(letter) {

case 'e':
   return '?';
}
Run Code Online (Sandbox Code Playgroud)

这看起来很奇怪,并寻找提示.谢谢你的帮助.

Ada*_*ost 5

更换字符的最快方法是使用数组.

创建一系列倒置字母.然后,检查进入的值并找到它匹配.

Java允许您通过简单地转换int来获取字符的整数表示.x = char a;因此,您的倒置a将在您的char的索引减去您映射的最低char(通常是小写a).

char[] updown = {'?','q','?','p','?','?','?','?','?','?','?','l','?','u','o','d','b','?','s','?','n','?','?','x','?','z'};
//this example uses 26 chars, all lower case;
int a = 'a';
int z = 'z';

String newString = "";
for(int i=0; i<string.length; i++){
    int ch = string.charAt(i);
    if(ch>= a && ch <=z){
        newString = (updown[ch-a]) + newString;
    }
}
Run Code Online (Sandbox Code Playgroud)

这是IDEONE的链接,您可以自己编译和测试.http://ideone.com/LombFE


小智 5

我不确定特定于java的解决方案,但是看到java中的字符串使用unicode,我在这里检查了颠倒对应的unicode字符:http://www.fileformat.info/convert/text/upside-下map.htm

它看起来不是一个很好的编程方法来找到这些.但是,有各种各样的转换器,比如这个http://www.fileformat.info/convert/text/upside-down.htm 您可以根据这些类型的转换器之一的输入和输出生成配置文件并使用那些配置文件来驱动你颠倒的字母选择


A-3*_*312 4

尝试这个脚本,在这里: http: //ideone.com/szPg6V

\n\n

输入 :

\n\n
    \n
  • “所以我的问题是,有什么技巧/方法/任何线索可以以编程方式做到这一点吗?”
  • \n
\n\n

输出:

\n\n
    \n
  • ,\xc2\xbf\xca\x8e\xc9\x90\xca\x8d\xc9\x94\xc4\xb1\xca\x87\xc9\x90\xc9\xaf\xc9\xaf\xc9\x90\xc9\xb9bo\ xc9\xb9d u\xc4\xb1 \xca\x87\xc4\xb1 操作 o\xca\x87 \xc7\x9dn\xd7\x9f\xc9\x94 \xca\x8eu\xc9\x90/po\xc9\xa5\xca \x87\xc7\x9d\xc9\xaf/\xca\x9e\xc9\x94\xc4\xb1\xc9\xb9\xca\x87\xca\x8eu\xc9\x90\xc7\x9d\xc9\xb9\xc7\ x9d\xc9\xa5\xca\x87 s\xc4\xb1 \'\xca\x87\xc9\x90\xc9\xa5\xca\x87 s\xc4\xb1 uo\xc4\xb1\xca\x87s\xc7\x9dnb \xca\x8e\xc9\xaf操作系统,
  • \n
\n\n

Java代码:

\n\n
String normal = "abcdefghijklmnopqrstuvwxyz_,;.?!/\\\\\'";\nString split  = "\xc9\x90q\xc9\x94p\xc7\x9d\xc9\x9fb\xc9\xa5\xc4\xb1\xd8\xb8\xca\x9e\xd7\x9f\xc9\xafuodb\xc9\xb9s\xca\x87n\xca\x8c\xca\x8dx\xca\x8ez\xe2\x80\xbe\'\xd8\x9b\xcb\x99\xc2\xbf\xc2\xa1/\\\\,";\n//maj\nnormal += "ABCDEFGHIJKLMNOPQRSTUVWXYZ";\nsplit  += "\xe2\x88\x80q\xcf\xbd\xe1\x97\xa1\xc6\x8e\xe2\x84\xb2\xc6\x83HI\xc5\xbf\xca\x9e\xcb\xa5WNO\xd4\x80\xe1\xbd\x89\xe1\xb4\x9aS\xe2\x8a\xa5\xe2\x88\xa9\xce\x9bMX\xca\x8eZ";\n//number\nnormal += "0123456789";\nsplit  += "0\xc6\x96\xe1\x84\x85\xc6\x90\xe3\x84\xa3\xcf\x9b9\xe3\x84\xa586";\n\nString str = "So my question is that , is there any trick/method/any clue to do it in programmatic way ?";\nString newstr = ""; \nchar letter;\nfor (int i=0; i< str.length(); i++) {\n    letter = str.charAt(i);\n\n    int a = normal.indexOf(letter);\n    newstr += (a != -1) ? split.charAt(a) : letter;\n}\nSystem.out.println(new StringBuilder(newstr).reverse().toString());\n
Run Code Online (Sandbox Code Playgroud)\n\n

我使用这个工具: http: //www.upsidedowntext.com/

\n