一个java面试题,求大家帮助一下

一曲醉红尘 2018-04-13 05:29:39
1-9 9个数字 a-i9个字母随机组成的字符串
如:
1abc3567dgihee
怎样让数字变成对应的字母表中的字母,让字母变成字母在字母表表中的所在位置的数字?
例如1对应a
2对应b
3对应c
...全文
446 8 打赏 收藏 转发到动态 举报
写回复
用AI写文章
8 条回复
切换为时间正序
请发表友善的回复…
发表回复
一曲醉红尘 2018-04-13
  • 打赏
  • 举报
回复
引用 7 楼 weixin_41368339 的回复:
public static void main(String[] args) { String str = "1abc3567dgihee"; char[] strArray = str.toCharArray(); for (int i=0;i<strArray.length;i++) { char temp = strArray[i]; if(temp > 57){ strArray[i] = (char)(temp-48); }else{ strArray[i] = (char) (temp+48); } } String result = String.valueOf(strArray); System.out.println(result); }
666了 忘了这玩意儿了 好歹面试过了 谢了大神
weixin_41368339 2018-04-13
  • 打赏
  • 举报
回复
public static void main(String[] args) { String str = "1abc3567dgihee"; char[] strArray = str.toCharArray(); for (int i=0;i<strArray.length;i++) { char temp = strArray[i]; if(temp > 57){ strArray[i] = (char)(temp-48); }else{ strArray[i] = (char) (temp+48); } } String result = String.valueOf(strArray); System.out.println(result); }
一曲醉红尘 2018-04-13
  • 打赏
  • 举报
回复
引用 5 楼 ITjavaman 的回复:
额,没必要用正则吧,正则的效率问题导致我比较喜欢直接操作字符串!
直接替换想不到合适的方法啊
ITjavaman 2018-04-13
  • 打赏
  • 举报
回复
额,没必要用正则吧,正则的效率问题导致我比较喜欢直接操作字符串!
ITjavaman 2018-04-13
  • 打赏
  • 举报
回复
直接替换的方法
ITjavaman 2018-04-13
  • 打赏
  • 举报
回复
public static void main(String[] args) { String str = "1abc3567dgihee"; StringBuilder result = new StringBuilder(); Map<Character,Character> map = new HashMap<Character ,Character>(); String zm="abcdefghi"; String num = "123456789"; for(int i=0;i<9;i++) { map.put(zm.charAt(i), num.charAt(i)); map.put(num.charAt(i), zm.charAt(i)); } for(int i=0;i<str.length();i++) { result.append(map.get(str.charAt(i))); } System.out.println(result.toString()); }
一曲醉红尘 2018-04-13
  • 打赏
  • 举报
回复
引用 2 楼 ITjavaman 的回复:
public static void main(String[] args) { String str = "1abc3567dgihee"; StringBuilder result = new StringBuilder(); Map<Character,Character> map = new HashMap<Character ,Character>(); String zm="abcdefghi"; String num = "123456789"; for(int i=0;i<9;i++) { map.put(zm.charAt(i), num.charAt(i)); map.put(num.charAt(i), zm.charAt(i)); } for(int i=0;i<str.length();i++) { result.append(map.get(str.charAt(i))); } System.out.println(result.toString()); }
谢谢 我自己写的方法非常麻烦

 public static void main( String[] args )
    {
        List<String> list=new ArrayList<String>();
        String []  letters={"a","b","c","d","e","f","g","h","i"};
        String test="123edfhi65eedacb";
        String[] testArr=test.split( "" );
        Pattern reg1=Pattern.compile( "\\d" );
        Pattern reg2=Pattern.compile( "[a-z]" );
        for(int i=0;i<testArr.length;i++){
            Matcher m1=reg1.matcher(testArr[i]);
            Matcher m2=reg2.matcher(testArr[i]);
          if(m1.matches()){
              list.add( letters[(Integer.parseInt( testArr[i] )-1)] );
          }
          if(m2.matches()){
              list.add( (Arrays.binarySearch(letters,  testArr[i] )+1) +"");
          }
        }
        System.out.println( list.toString().replaceAll( "[^\\da-z]", "" ) );
    }
一曲醉红尘 2018-04-13
  • 打赏
  • 举报
回复
我自己想了一下,没有合适的思路,随机的字符串 数字和字母互换

50,758

社区成员

发帖
与我相关
我的任务
社区描述
Java相关技术讨论
javaspring bootspring cloud 技术论坛(原bbs)
社区管理员
  • Java相关社区
  • 小虚竹
  • 谙忆
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧