分享几道测试题!
2012-11-25 17:40
141 查看
1、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)...
import java.util.Arrays; public class Test1 { /** * 1、 取出一个字符串中字母出现的次数。如:字符串:"abcdekka27qoq" ,输出格式为:a(2)b(1)k(2)... */ public static void main(String[] args) { System.out.println(); fun("di5s80driuebnaAAAAAAAdskfnSasdw84wDsddis");//大写字母不考虑 } public static void fun(String str){ char[] c = str.toCharArray();//转换成字符数组 Arrays.sort(c);//对字符数组排序 int count=1;//计数 for(int i=0;i<c.length-1;i++){//遍历数组 if(!(c[i]>='a'&&c[i]<='z')){//非a-z字符,只考虑小写字母。 continue;//跳过非a-z的字符; } if(c[i]==c[i+1]){ count++; /*** delete 2014-02-07 *** if((i+1)==(c.length-1)){ System.out.println(c[i]+"("+count+")"); } *************************/ }else if(c[i]<c[i+1]){ System.out.print(c[i]+"("+count+")"); count=1; } //add 2014-02-07 评论1楼问题; if((i+1)==(c.length-1)){ System.out.print(c[i+1]+"("+count+")"); }//end } } }
2、 金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整
public class Test2 { /** * 10、 金额转换,阿拉伯数字转换成中国传统形式。 例如:101000001010 转换为 壹仟零壹拾亿零壹仟零壹拾圆整 */ public static void main(String[] args) { fun("315001000140");// 315,601,600,140 System.out.println(); fun("101000001010");//101,000,001,010 } public static void fun(String str) { char[] c = str.toCharArray(); int len = c.length; int count = c.length; for (int i = 0; i < len; i++) { if (c[i] == '0' && i < len - 1) {// 避免最后一位为0出错; if (len - i == 9) {// 亿位 System.out.print(num('y')); } if((c[i-1]!='0')||(c[i-2]!='0')||(c[i-3]!='0')){//整拾万,百万数字判断 ,例:315,601,600,140,315,601,000,140 if (len - i == 5) {// 过多的0判断万位 System.out.print(num('w')); } } if (c[i + 1] == '0') {//再次出现0; count--;// 退一位 continue; // 方便阅读;下一次循环; } else { System.out.print(num(c[i]));// 打印 中文数字 "零"; count--;// 退一位 } } else { count--;// 退一位 if (c[i] != '0') { System.out.print(num(c[i]) + sel(count, len));// 打印除中文"零"以外的中文(壹-玖)和单位; } else { System.out.println(sel(count, len));// 最后一位为0,不打印"零"并加上最后的圆整 } } } } /* * sel()单位选择 * */ public static String sel(int count, int len) { int val = count % len; String str; switch (val) { case 0: str = num('z');break; case 1: str = num('s');break; case 2: str = num('b');break; case 3: str = num('q');break; case 4: str = num('w');break;// case 5: str = num('s');break; case 6: str = num('b');break; case 7: str = num('q');break; case 8: str = num('y');break;// case 9: str = num('s');break; case 10: str = num('b');break; case 11: str = num('q');break; case 12: str = num('w');break;//万亿;后面可以加case 13: .... default: str = null; break; } return str; } /* * 数字及单位 */ public static String num(char c) { String str = null; switch (c) { case '0': str = "零";break; case '1': str = "壹";break; case '2': str = "贰";break; case '3': str = "叁";break; case '4': str = "肆";break; case '5': str = "伍";break; case '6': str = "陆";break; case '7': str = "柒";break; case '8': str = "捌";break; case '9': str = "玖";break; case 's': str = "拾";break; case 'b': str = "百";break; case 'q': str = "千";break; case 'w': str = "万";break; case 'y': str = "亿";break; case 'z': str = "圆整";break; default: str = "!";break; } return str; } }
3、 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。
public class Test3 { /** * 10、 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 * 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 */ public static void main(String[] args) { // TODO Auto-generated method stub System.out.println("我ABC汉DEF--->截取4字节:"+fun("我ABC汉DEF",4)); System.out.println("我ABC汉DEF--->截取6字节:"+fun("我ABC汉DEF",6)); } public static String fun(String str,int x){ //先将源字符串--->字节数组 byte[] src=str.getBytes(); byte[] des=new byte[x+1];//保存需要的字节数目+1; for(int i=0;i<x+1;i++){ des[i]=src[i];//保存字节。 } String r1=new String(des);//目标字符串,多一个 char[] c=r1.toCharArray();//转换为字符数组 String result=new String(c,0,c.length-1);//去除最后一个字符 return result; } }
相关文章推荐
- 分享几道黑马程序员训练营.NET基础测试题
- 分享给Python新手们的几道简单练习题
- 分享几道嵌入式c笔试题
- 几道测试题,人间几重天
- 几道英语语法测试题,来做做看
- 分享几道VB.net笔试试题
- 0066 阿里云大学的几道Java基础测试题
- 分享几道奇怪的面试题
- Java编程基础测试题分享
- 朋友去MS面试,我从他口里探到几道编程面试题。特来和各位分享。
- 几道智力题,一起分享
- 分享几道百度笔试题
- 今天笔试的几道题目分享-三页智力题+三页程序题
- 关于对象引用次数几道测试题
- 创业经验分享:互联网创业必须越过的几道槛
- 贴几道C++测试题。
- Linux下C语言的几道经典面试题小结(分享)
- Java基础篇_有关接口和抽象类的几道练习题(分享)
- 分享几道你可能遇到的python面试题
- 网上看到几道面试小题,分享一下