zoukankan      html  css  js  c++  java
  • 尚硅谷JavaSEday18 String类练习题

    1.重新编写strim方法,去掉字符串两端的空格

    package www.shangguigu.java.exer;
    import org.junit.Test;
    
    /*
     练习一:重写Strim方法,输入一个字符串,去掉两端的空格
     */
    public class StringDemo {
    	@Test
    	// 测试1:
    	public void test1(){
    		String str = " wangqin wo aini!     ";
    		//String str = "   "; //只有空格的字符串时,理论上是不打印,但是会出现空指针异常,加上
    		String newStr = StringDemo.MyStrim(str);
    		System.out.println(newStr);
    	}
    	
    	//练习一:
    	public static String MyStrim(String str){
    		int start = 0;
    		int end = str.length()-1;
    		while(start<=end && str.charAt(start)==' '){
    			start++;
    		}
    		while(start<=end &&str.charAt(end)==' '){
    			end--;
    		}
    		String strimStr = str.substring(start,end+1);
    		return strimStr;
    	}
    

      2.对字符串进行反转,例如“abcdefg”,反转成为“abfedcg”

    package www.shangguigu.java.exer;
    import org.junit.Test;
    
    /*
     练习二:将一个字符串进行反转。将字符串的一部分进行反转,比如讲“abcdefg"反转为”abfedcg".
     练习三:
     */
    public class StringDemo {
    	@Test
    	public void test2(){
    		String str = "abcdefg";
    		String revStr1 = StringDemo.reverseString1(str, 2, 5);
    		System.out.println(revStr1);
    		String revStr2 = StringDemo.reverseString2(str, 2, 5);
    		System.out.println(revStr2);
    		
    	}
    	//练习二:方法一:使用截取字符串的方式
    	public static String reverseString1(String str,int start,int end){
    		String str1 = str.substring(0,start);
    		String str2 = str.substring(end+1);
    		for(int i=end;i>=start;i--){
    			char c = str.charAt(i);
    			str1 += c;
    		} 
    		str1 += str2;
    		
    		return str1;
    	}
    	//练习二:方法二:通过将字符串转发成字符数组,在进行反转操作,最后在将字符数组转换成字符串
    	public static String reverseString2(String str,int start ,int end){
    		char [] strArray = str.toCharArray();
    		return reverseCharArray(strArray,start,end);
    	}
    	public static String reverseCharArray(char[] strArray,int start,int end){
    		for(int i=start,j=end;i<end;i++,j--){
    			char temp = strArray[i];
    			strArray[i] = strArray[j];
    			strArray[j] = temp;
    		}
    		return new String(strArray);
    	}
    

      3.获取一个字符串在另一个在字符串中出现的次数。例如:

    :获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数
    package www.shangguigu.java.exer;
    import org.junit.Test;
    
    /*
     练习三:获取一个字符串在另一个字符串中出现的次数。 比如:获取“ab”在 “abkkcadkabkebfkabkskab”中出现的次数
     */
    public class StringDemo {
    	@Test
    	public void test3(){
    		String str1 = "abcab3fabkkkabddcadl";
    		String str2 = "ab";
    		int count = StringDemo.getTime(str1, str2);
    		System.out.println(count);
    		
    	}
    	//练习3:获取一个字符串在另一个字符串中出现的次数。获取str2在str1中出现的次数
    	public static int getTime(String str1,String str2){
    		int count = 0;
    		int len;
    		while((len=str1.indexOf(str2))!=-1){ //str1.indexof(str2) 判断str2在str1中首次出现的位置
    			count++;
    			str1 = str1.substring(len + str2.length());
    		}
    		return count;
    	}
    

      

  • 相关阅读:
    Quicksum -SilverN
    uva 140 bandwidth (好题) ——yhx
    uva 129 krypton factors ——yhx
    uva 524 prime ring problem——yhx
    uva 10976 fractions again(水题)——yhx
    uva 11059 maximum product(水题)——yhx
    uva 725 division(水题)——yhx
    uva 11853 paintball(好题)——yhx
    uva 1599 ideal path(好题)——yhx
    uva 1572 self-assembly ——yhx
  • 原文地址:https://www.cnblogs.com/itlinux/p/5767131.html
Copyright © 2011-2022 走看看