欢迎来到天天文库
浏览记录
ID:36221534
大小:69.50 KB
页数:7页
时间:2019-05-07
《java编程问题》由会员上传分享,免费在线阅读,更多相关内容在教育资源-天天文库。
1、编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。 在网上看了看,找到了两种方法:1如果是charset(gb2312,GBK,BIG5),汉字占两个字节,问题的关键在于考虑截取长度的最后一个字节,如果是属于一个汉字的第一个字节,忽略即可,而汉字每个字节前都是1,所以都是负数,采用if(byte[i]<0)判断是否是汉字的最后一个字节第一种方法就是基于上面的这段话来实现的:publicStringstrin
2、gsplit(Stringstr,intnum){Stringstr1=null;try{byte[]by=str.getBytes("gbk");str1=null;if(by[num]<0){if(by[num-1]<0){str1=newString(by,0,num,"gbk");}else{str1=newString(by,0,num-1,"gbk");}}else{str1=newString(by,0,num,"gbk");}}catch(UnsupportedEncodingExceptione){e.printStackTrace();}returnstr1;}但
3、是以上这种方法是有缺陷的,并不能够将所有的情况包括进去。2publicStringstringsplit2(Stringstr,intnum){if(str==null
4、
5、str.equals("")){return"";}else{char[]cha=str.toCharArray();intcount=0;Stringresult="";for(inti=0;i6、num){result+=s;}}catch(UnsupportedEncodingExceptione){e.printStackTrace();}}returnresult;}}这一种方法就能够很好的解决字符串截取问题。不管是那一种方法里面都涉及到了很多byte,char,String之间的转换以及很多方法。现在输入n个数字,以逗号,分开;然后可选择升或者降序排序.一种方法是使用StringTokenizer类,但是这个类是一个过时的类,现在不建议使用。那我们就直接使用String类Stringss="1,2,3,4,5,6,7,8,9,0";String[]ds=ss.spli7、t(",");int[]it=newint[ds.length];for(inti=0;i=0;i--){System.out.println(it[i]);}在java.util类库中可以找到Arrays类,它有一套static方法,提供了操作数组的实用功能。其中有四个基本方法:equals()胜于比较两个8、数组是否相等;fill()用于以某个值填充整个数组;sort()用于对数组排序;binarySearch()用于在已经排序的数组中查找元素。此外,方法asList()接受任意的数组为参数,并将其转变为List容器。创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程) importjava.lang.reflect.Method;publicclassMyMain{publicstaticvoidmain(String[]args){Aa=newA();Testt=newTest();t.test(a);}}classA{pu9、blicvoida(){}publicintb(Stringstr){return1;}publicStringc(Stringstr,inta){return"";}}classTest{publicstaticvoidtest(Objectobj){Classclz=obj.getClass();System.out.println("该对象所属的类的名字是:"+clz.getName());//Method提供关于类或接口上单独某个方法(以及如何访问
6、num){result+=s;}}catch(UnsupportedEncodingExceptione){e.printStackTrace();}}returnresult;}}这一种方法就能够很好的解决字符串截取问题。不管是那一种方法里面都涉及到了很多byte,char,String之间的转换以及很多方法。现在输入n个数字,以逗号,分开;然后可选择升或者降序排序.一种方法是使用StringTokenizer类,但是这个类是一个过时的类,现在不建议使用。那我们就直接使用String类Stringss="1,2,3,4,5,6,7,8,9,0";String[]ds=ss.spli
7、t(",");int[]it=newint[ds.length];for(inti=0;i=0;i--){System.out.println(it[i]);}在java.util类库中可以找到Arrays类,它有一套static方法,提供了操作数组的实用功能。其中有四个基本方法:equals()胜于比较两个
8、数组是否相等;fill()用于以某个值填充整个数组;sort()用于对数组排序;binarySearch()用于在已经排序的数组中查找元素。此外,方法asList()接受任意的数组为参数,并将其转变为List容器。创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程) importjava.lang.reflect.Method;publicclassMyMain{publicstaticvoidmain(String[]args){Aa=newA();Testt=newTest();t.test(a);}}classA{pu
9、blicvoida(){}publicintb(Stringstr){return1;}publicStringc(Stringstr,inta){return"";}}classTest{publicstaticvoidtest(Objectobj){Classclz=obj.getClass();System.out.println("该对象所属的类的名字是:"+clz.getName());//Method提供关于类或接口上单独某个方法(以及如何访问
此文档下载收益归作者所有