本帖最后由 李小然 于 2014-5-17 10:54 编辑
- public class StringTest1 {
- /**
- * @param args
- */
- public static void main(String[] args) {
- // TODO Auto-generated method stub
- System.out.println(StringMethod.getCount("nbaernbatynbauklnbanbasrtnba","nba"));
- System.out.println(StringMethod.myTrim(" ab c "));
- System.out.println(StringMethod.sortString("bacedhgf"));
- System.out.println(StringMethod.reverseString("sbc"));
- }
- }
- //有关String方法的练习
- class StringMethod{
- //在长串中找字串出现的次数
- public static int getCount(String str,String substr)
- {
- //从哪个角标开始查找
- int fromIndex=0;
- //定义一个计数器的变量
- int count=0;
- //如果角标不为零就循环
- while((fromIndex=str.indexOf(substr, fromIndex))!=-1)
- {
- //改变查找的角标
- fromIndex+=substr.length();
- //若查到字串就自加
- count++;
- }
- //返回计数器
- return count;
- }
- //去除前后空白的方法
- public static String myTrim(String str)
- {
- //1.去除空白 ,获取字符串的有效部分
- //定义两个变量表示头尾
- int start=0;
- int end=str.length();
- //判断是否为空白,是,头角标自加
- while(start<=end && str.charAt(start)==' ')
- {
- start++;
- }
- //判断是否为空白,是,尾角标自减
- while(start<=end&&str.charAt(end-1)==' ')
- {
- end--;
- }
- //返回字串从头角标不是空白开始到为角标不是空白为止。注,substring方法包含头角标不包含尾角标,所以尾角标要加1
- return str.substring(start, end+1);
-
- }
- //为字符串排序的方法
- public static String sortString(String str)
- {
- //把字符串转成字符数组
- char[] ch=str.toCharArray();
- //提出为字符数组排序的方法
- sortCharArray(ch);
- //把字符数组转成字符串
- String str1=new String(ch);
- //返回字符串
- return str1;
-
- }
- //为字符数组排序的方法
- private static void sortCharArray(char[] ch)
- {
-
- for(int i=0;i<ch.length;i++)
- {
- for(int j=i+1;j<ch.length;j++)
- {
- if(ch[i]>ch[j])
- {
- exchange(ch,i,j);
- }
- }
- }
- }
- //将字符串反转的方法
- public static String reverseString(String str)
- {
- char ch[]=str.toCharArray();
- //反转字符串
- reverse(ch);
- String str1=new String(ch);
- return str1;
- }
- private static void reverse(char[] ch) {
- // TODO Auto-generated method stub
- //需要头和尾交换所以定义头尾两个变量
- int start=0;
- int end=ch.length-1;
- while(start<end)
- {
- exchange(ch,start,end);
- start++;
- end--;
- }
-
- }
- //交换方法
- private static void exchange(char[] a,int c, int d) {
- // TODO Auto-generated method stub
- char temp;
- temp=a[c];
- a[c]=a[d];
- a[d]=temp;
- }
- }
复制代码
顺便问一下 我写的交换方法为什么private static void exchange(char a, char d)这样定义就不交换了呢?求解 |
|