编写一个截取字符串的函数,输入为一个字符串和字节数, 编写一个截取字符串的函数,输入为一个字符串和字节数,输出为按字节截取的 字符串。 但是要保证汉字不被截半个, 我 字符串。 但是要保证汉字不被截半个,如“我 ABC”4,应该截为 我 AB”,输入 我 ABC ,应该截为“我 ,输入“我 而不是“我 汉的半个”。 汉 DEF”,6,应该输出为 我 ABC”而不是 我 ABC+汉的半个 , ,应该输出为“我 而不是 汉的半个 在网上看了看,找到了两种方法: 问题的关键在于考虑截取长度的最后一个字节, 1 如果是 charset(gb2312, GBK, BIG5), 汉字占两个字节, , 汉字占两个字节, 问题的关键在于考虑截取长度的最后一个字节,
如果是属于一个汉字的第一个字节, 忽略即可, 而汉字每个字节前都是 1, 所以都是负数, 如果是属于一个汉字的第一个字节, 忽略即可, , 所以都是负数, 采用 if(byte[i]<0) 判断是否是汉字的最后一个字节 判断是否是汉字的最后一个字节 第一种方法就是基于上面的这段话来实现的: 第一种方法就是基于上面的这段话来实现的:
public String stringsplit(String str,int num){ String str1=null; try { byte[] by=str.getBytes("gbk"); str1 = null; if(by[num]<0){ if(by[num-1]<0){ str1=new String(by,0,num,"gbk"); }else{ str1=new String(by,0,num-1,"gbk"); } }else{ str1=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 ""; }else{ char[] cha=str.toCharArray(); int count=0; String result=""; for(int i=0;i
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 int[ds.length]; for(int i=0;i=0;i--){ System.out.println(it[i]); }
在 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 A{ public void a(){} public int b(String str){return 1;} public String c(String str,int a){return "";} } class Test{
public static void test(Object obj){ Class clz=obj.getClass(); System.