首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 开发语言 > 编程 >

一些字符串有关面试题的java实现

2012-10-28 
一些字符串相关面试题的java实现1.字符串右移n位2.字符串反转3.返回任意整数对应二进制形式中的1的个数4.

一些字符串相关面试题的java实现
1.字符串右移n位
2.字符串反转
3.返回任意整数对应二进制形式中的1的个数
4.显示字符串中字符的所有排序

import java.util.ArrayList;import java.util.List;public class Test4{public static void main(String[] args){System.out.println(strMoveLeft("alhgon1o4n34lln1231",10));System.out.println(strReverse("alhgon1o4n34lln1231b"));System.out.println(oneStat(15));sort("abcj");}//字符串右移n位private static String strMoveLeft(String a,int moveNum){char[] a1 = a.toCharArray();char[] b1 = new char[a1.length];moveNum %= a.length();//移动位数可能大于数组长度for(int i=0;i<a1.length;i++){if(i-moveNum>=0){b1[i-moveNum] = a1[i];}else{b1[i-moveNum+a1.length] = a1[i];}}return String.valueOf(b1);}//字符串反转private static String strReverse(String a){char[] a1 = a.toCharArray();for(int i=0;i<a1.length/2;i++){char temp = a1[i];a1[i] = a1[a1.length-i-1];a1[a1.length-i-1] = temp;}return String.valueOf(a1);}//返回任意整数对应二进制形式中的1的个数private static int oneStat(int i){int b = 0;while(i>0){if(i%2==1){b+=1;}i/=2;}return b;}//显示字符串中字符的所有排序,没有去重private static void sort(String a){char[] a1 = a.toCharArray();List<Character> list = new ArrayList<Character>();for(int i=0;i<a1.length;i++){list.add(a1[i]);}StringBuffer sb = new StringBuffer();display(list, sb);}private static void display(List<Character> list,StringBuffer sb){if(list.size()==0){System.out.println(sb.toString());return;}for(int i=0;i<list.size();i++){List<Character> dealList = new ArrayList<Character>(list);StringBuffer dealSb = new StringBuffer(sb);dealSb.append(String.valueOf(list.get(i)));dealList.remove(i);display(dealList,dealSb);//递归实现}}}



热点排行