字符串应用
通过对String类和StringBuffer类的学习和理解,来进行字符串应用的简单实现,因为我是初学者所以我的学习就是简单的实现。
1.截取字符串
输入为一个字符串和字节数,输出为按照字节数截取的字符串,要保证汉字不会被截半个。例如“我ABC们DEF,6”,要输出“我ABC”,而不会出现汉字截取错误。
其实这个题是我看到网上做的,而且我也觉得他的方法很好,所以拿出来和大家共同分享
public class copyFor { public static void main(String[] args) throws UnsupportedEncodingException{ String s="我们DEF"; int n=4; String str=cutString(s,n); System.out.println(str); } private static String cutString(String s, int n) throws UnsupportedEncodingException { // TODO Auto-generated method stub if(s!=null&&"".equals(s)){ s=new String(s.getBytes(),"GBK"); } StringBuffer buffer=new StringBuffer(); if(n!=0&&n<s.getBytes("GBK").length){ for(int i=0;i<n;i++){ char c=s.charAt(i); buffer.append(c); System.out.println("buffer="+buffer.toString()); if(copyFor.isChinens(c)){ --n; } } } return buffer.toString(); } private static boolean isChinens(char c) throws UnsupportedEncodingException { // TODO Auto-generated method stub if(String.valueOf(c).getBytes("GBK").length>1){ return true; }else{ return false;} } }
2.拆分字符串
现有一个字符串(123,45,678),由数字和逗号组成,编写一段程序将字符串中的数字提取出来,分别按照升序和降序排列打印出来
这个题我自己做了一个方法,书上提供了StringTokenizer来处理
public class six { public static void main(String[] args){ String s="123,45,25,85"; String[] str=s.split(","); for(int i=0;i<str.length;i++){ System.out.println(str[i]); } int[] num=new int[str.length]; for(int i=0;i<num.length;i++){ num[i]=Integer.parseInt(str[i]); System.out.println("list-------->"+num[i]); } Arrays.sort(num); for(int j=0;j<num.length;j++){ System.out.println(num[j]); System.out.println("de"+num[num.length-1-j]); } } }
这个是我写的,因为题目明确给出了有逗号,所以我用了String的split方法。
下面给出书上的代码,其实是这个更具有代表性
public class Test { public static void main(String[] args){ String[] s=sps("123,45,678"); int[] num=new int[s.length]; for(int i=0;i<s.length;i++){ num[i]=Integer.parseInt(s[i]); } Arrays.sort(num); for(int i=0;i<num.length;i++){ System.out.println(num[i]+","+num[num.length-1-i]); } } private static String[] sps(String string) { // TODO Auto-generated method stub if(string==null&&"".equals(string)) { System.out.println("wrong"); } StringTokenizer st=new StringTokenizer(string,","); String[] str=new String[st.countTokens()]; int i=0; while(st.hasMoreTokens()){ str[i]=st.nextToken(); i++; } return str; } }
感慨下:看着别人写的代码就觉得自己写的太差了,哎或许这就是实力的差距吧,今天到这了吧。
送给今天努力的我
-------小美