读书人

String种操作实例

发布时间: 2012-10-24 14:15:58 作者: rapoo

String类操作实例

class  StringDemo{public static void main(String[] args) {//String s = "abc";//String s1 = "abc";////System.out.println(s==s1);//String str = "hello java!";//System.out.println(str.length());////System.out.println(str.indexOf("ab"));//System.out.println(str.replace('k','n'));//hello jnvn!//System.out.println(str.toUpperCase());//System.out.println("--"+str.substring(3,60)+"--");////System.out.println(str);StringDemo sd = new StringDemo();String s = "     abc    ";System.out.println("-"+s.trim()+"-");System.out.println("-"+sd.myTrim(s)+"-");String str = "sdkkffkksfskkkdfskkdfsdkk";String subStr = "kk";int count = sd.getCount(str,subStr);System.out.println("count="+count);String maxSub = sd.getMaxSubStr("sdfsabcdedgdfgwkketrfw","rabcdew");System.out.println("maxsub:"+maxSub);String sortStr = sd.sortString("ca+b05de");System.out.println("sortStr:"+sortStr);}/*trim的实现。去除字符串两端的空格。思路:1,字符串每一个字符都有自己的角标。可以定义两个索引变量,判断开始索引位的字符是否是空格,如果是就继续向下判断。开始索引在自增。同理,判断结束索引位的字符是否是空格,如果是就继续向前判断。并结束索引自减。*/public String myTrim(String str){int start = 0;int end = str.length()-1;while(start<=end && str.charAt(start)==' ')start++;while(start<end && str.charAt(end)==' ')end--;return str.substring(start,end+1);}/*获取一个子串在字符串中出现的次数。"sdkkffkksfskkdfskkdfsdkk" "kk"思路:1,判断子串是否在正串中存在,如果存在记录第一次出现的位置。2,通过第一次出现的位置,获取剩下的子串。在继续这个动作即可。3,使用到了计数器思想。*/public int getCount(String str,String subStr){int count = 0;int index = -1;while((index = str.indexOf(subStr))!=-1){str = str.substring(index+subStr.length());count++;}return count;}/*获取两个字符串的最大相同子串。"sdfsabcdedgdfgwkketrfw""rabcdew"*/public String getMaxSubStr(String s1,String s2){for(int x=0; x<s2.length(); x++){for(int y=0,z=s2.length()-x; z!=s2.length()+1; y++,z++){String temp = s2.substring(y,z);//System.out.println(temp);if(s1.contains(temp))return temp;}}return null;}/*"cabde" "abcde"对这个字符串的字符进行排序后,生成一个有顺序的字符串。思路:1,既然有排序,就想到了数组,2,将字符串变成字符数组,因为字符都有对应的数字。因为ASCII码表。3,对数组进行排序。4,将排序后的数组变成字符串。*/public String sortString(String str){char[] arr = getArray(str);sort(arr);return arrayToString(arr);}private char[] getArray(String str){return  str.toCharArray();}private void sort(char[] arr){for(int x=0; x<arr.length; x++){for(int y=x+1; y<arr.length; y++){if(arr[x]>arr[y]){swap(arr,x,y);}}}}private void swap(char[] arr,int x,int y){char temp = arr[x];arr[x]  = arr[y] ;arr[y] = temp;}private String arrayToString(char[] arr){return String.copyValueOf(arr);//new String(arr);}}

?

读书人网 >编程

热点推荐