java编程问题.doc_第1页
java编程问题.doc_第2页
java编程问题.doc_第3页
java编程问题.doc_第4页
java编程问题.doc_第5页
已阅读5页,还剩2页未读 继续免费阅读

下载本文档

版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领

文档简介

编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的字符串。 但是要保证汉字不被截半个,如“我ABC”4,应该截为“我AB”,输入“我ABC汉DEF”,6,应该输出为“我ABC”而不是“我ABC+汉的半个”。在网上看了看,找到了两种方法:1如果是charset(gb2312, GBK, BIG5), 汉字占两个字节,问题的关键在于考虑截取长度的最后一个字节,如果是属于一个汉字的第一个字节,忽略即可,而汉字每个字节前都是1,所以都是负数,采用if(bytei0)判断是否是汉字的最后一个字节第一种方法就是基于上面的这段话来实现的:public String stringsplit(String str,int num)String str1=null;try byte by=str.getBytes(gbk);str1 = null;if(bynum0)if(bynum-10)str1=new String(by,0,num,gbk);elsestr1=new String(by,0,num-1,gbk);elsestr1=new String(by,0,num,gbk); catch (UnsupportedEncodingException e) e.printStackTrace();return str1;但是以上这种方法是有缺陷的,并不能够将所有的情况包括进去。2 public String stringsplit2(String str,int num)if(str=null | str.equals()return ;elsechar cha=str.toCharArray();int count=0;String result=;for(int i=0;icha.length;i+)String s=String.valueOf(chai);try byte by=s.getBytes(gbk);count=count+by.length;if(count=num)result+=s; catch (UnsupportedEncodingException e) e.printStackTrace();return result;这一种方法就能够很好的解决字符串截取问题。不管是那一种方法里面都涉及到了很多byte ,char ,String之间的转换以及很多方法。现在输入n个数字,以逗号,分开;然后可选择升或者降序排序.一种方法是使用StringTokenizer类,但是这个类是一个过时的类,现在不建议使用。那我们就直接使用String类String ss=1,2,3,4,5,6,7,8,9,0;String ds=ss.split(,);int it=new intds.length;for(int i=0;i=0;i-)System.out.println(iti);在java.util类库中可以找到Arrays类,它有一套static方法,提供了操作数组的实用功能。其中有四个基本方法:equals()胜于比较两个数组是否相等;fill()用于以某个值填充整个数组;sort()用于对数组排序;binarySearch()用于在已经排序的数组中查找元素。此外,方法asList()接受任意的数组为参数,并将其转变为List容器。创建一个静态方法,给它传入一个对象,请循环的打印出该对象所在类的类名和所实现的方法名(华为笔试最后一道编程)import java.lang.reflect.Method;public class MyMain public static void main(String args) A a=new A();Test t=new Test();t.test(a);class Apublic void a()public int b(String str)return 1;public String c(String str,int a)return ;class Testpublic static void test(Object obj)Class clz=obj.getClass();System.out.println(该对象所属的类的名字是:+clz.getName();/Method 提供关于类或接口上单独某个方法(以及如何访问该方法)的信息。/所反映的方法可能是类方法或实例方法(包括抽象方法)。Method ms=clz.getDeclaredMethods();/import java.lang.reflect.Method;/返回 Method 对象的一个数组,这些对象反映此 Class 对象表示的类或接口声明的所有方法,/包括公共、保护、默认(包)访问和私有方法,但不包括继承的方法。for(int i=0;i0)for(int j=0;j=0;i-)sbf.append(s2i);System.out.println(sbf.toString();给你一组字符如1,3,4,7,2,1,1,5,2,让你输出里面出现次数最多且数值最大的一个,出现几次汉字的编码问题:如果采用系统默认的编码方式是gbk那么一个汉字是两个字节,如果采用utf-8编码,那么一个汉字占3个字节,并且这两种编码方式每一个字节都是负数。public static void main(String args)String s1=abcdd我的祖国;char cha=s1.toCharArray();try for(int i=0;icha.length;i+)System.out.println(字符串的第一个字符是:+chai);byte by=String.valueOf(chai).getBytes(utf-8);/不写的话,默认就是gbkfor(int j=0;jby.length;j+)System.out.println(byj);System.out.println(*); catch (UnsupportedEncodingException e) e.printStackTrace();实现数组复制int a=1,2,3,4,5;int b=a.clone();for(int i=0;ib?a:b;int divisor=1;for(int i=2;i1 7. *可能while循环方法执行的速度比递归方法快,但是为什么采用递归呢。 8. *采用递归,是因为它从概念上简化了问题,而不是因为它提高效率。 9. */10. publicstaticinttriangle(intn)/递归方法,循环调用 11. if(n=1) 12. return1; 13. else 14. return(n+triangle(n-1); 15. 16. 17. 18. publicstaticinttriangle2(intn)/非递归方法 19. inttotal=0; 20. while(n0) 21. total=total+n-; 22. 23. returntotal; 24. 25. /* 26. *总结: 27. *使用非递归的方式更简洁,更易懂,运行效率更高,为什么还要用递归的算法呢。 28. *递归使用使程序规模逐渐降低的方式来解决问题,以这种统一的方式解决足够复杂的问题。 29. */ public static int fibon(int n)if(n=1 | n=2)return 1;elsereturn fibon(n-2)+fibon(n-1);编程显示某一文件目录下的文件名public void xianshi()File file=new File(K:有用的软件和书籍);if(file.exists()/判断此抽象路径名表示的文件或目录是否存在。if(file.isDirectory()/判断此抽象路径名表示的文件是否是一个目录。String files=file.list();/返回一个字符串数组,这些字符串指定此抽象路径名表示的目录中的文件和目录。for(int i=0;ifiles.length;i+)System.out.println(filesi);冒泡排序的实现冒泡排序(BubbleSort)的基本概念是:依次比较相邻的两个数,将小数放在前面,大数放在后面。即在第一趟:首先比较第1个和第2个数,将小数放前,大数放后。然后比较第2个数和第3个数,将小数放前,大数放后,如此继续,直至比较最后两个数,将小数放前,大数放后。至此第一趟结束,将最大的数放到了最后。在第二趟:仍从第一对数开始比较(因为可能由于第2个数和第3个数的交换,使得第1个数不再小于第2个数),将小数放前,大数放后,一直比较到倒数第二个数(倒数第一的位置上已经是最大的),第二趟结束,在倒数第二的位置上得到一个新的最大数(其实在整个数列中是第二大的数)。如此下去,重复以上过程,直至最终完成排序。 由于在排序过程中总是小数往前

温馨提示

  • 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
  • 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
  • 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
  • 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
  • 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
  • 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
  • 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。

评论

0/150

提交评论