• JAVA学习第三十课(经常使用对象API)- String类:类方法练习



    intern方法

    public class Main
    {
    	public static void main(String[] args)
    	{
    		String str1 = new String("asd");
    		String str2 = str1.intern();/* 字符串常量池中有,就返回字符串,没有就创建 */
    		System.out.println(str2);
    		System.out.println( str1 == str2 );
    	}
    }
    

    练习1:字符串数组排序

    import java.util.Scanner;
    
    /*
     * 给定一个字符串数组,按字典序升序排序
     */
    public class Main {
    	public static void main(String[] args) {
    		stringsort();
    	}
    
    	public static void stringsort() {
    		String[] str = new String[10];
    		Scanner in = new Scanner(System.in);
    		for (int i = 0; i < str.length; i++) {
    			str[i] = in.nextLine();
    		}
    		// System.out.println(str.length);
    		for (int i = 0; i < str.length - 1; i++) {
    			for (int j = 0; j < str.length - 1 - i; j++) {
    				if (str[j].compareTo(str[j + 1]) > 0) {
    					String t = str[j];
    					str[j] = str[j + 1];
    					str[j + 1] = t;
    				}
    			}
    		}
    		for (String iString : str) {
    			System.out.println(iString);
    		}
    
    	}
    }
    

    练习2:统计子串在母串中出现的次数

    indexOf的应用,记录当前出现的下标A。然后再从A+子串长度继续下后indexOf,利用循环可实现本功能

    import java.util.Scanner;
    
    /*
     * 一个子串在字符串中出现的次数
     */
    public class Main {
    	public static void main(String[] args) {
    		count();
    	}
    
    	public static void count() {
    		String str = "abcdefabcghiabcsdabchzabc";
    		int num = 0,wz = 0;
    		for (int i = 0; i < str.length(); i++) {
    			int t = str.indexOf("abc",wz);
    			if(t!=-1)
    				{
    					wz = t+"abc".length();
    				num++;
    				}
    			else 
    				break;
    		}
    		System.out.println(num);
    	}
    }
    

    练习3:两个字符串的最大同样子串

    import java.util.Scanner;
    
    /*
     * 两个字符串中的最长公共子串
     */
    public class Main {
    	public static void main(String[] args) {
    		String tString = compare();
    		System.out.println(tString);
    	}
    
    	public static String compare() {
    		String str1 = "vbabcdefgsdfg";
    		String str2 = "asdabcdefgdf";
    		int Mlen = str1.length();
    		int Zlen = str2.length();
    		int len = (Mlen > Zlen) ?

    Zlen : Mlen; // 找较短的母串,最大的公共长度不会超过len // 公共子串可能出如今中间 for (int i = 0; i < len; i++)// 控制最大长度 { for (int j = 0, k = len - i; k <= len; k++, j++)// j控制几个满足,k控制子串最后元素下标不越界 { String sub = str2.substring(j, k); if (str1.contains(sub)) return sub; } } return null; } }


    练习4:去除两端空格(模拟trim方法)

    public class Main {
    	public static void main(String[] args) {
    		String string = "    asd fs fg h   ";
    		int st = 0,en = string.length()-1;
    		
    		for(;st<=en && string.charAt(st)==' '; st++);
    		
    		for(;st<=en && string.charAt(en)==' '; en--);
    		
    		String sub = string.substring(st, en+1);
    		System.out.println(sub);
    	}
    
    }


  • 相关阅读:
    js MD5加密后的字符串
    <%@ Page Language="C#" Inherits="System.Web.Mvc.ViewPage<dynamic>" %>
    归并排序
    C#分解质因数
    C#找出第n到m个素数之间所有之和
    C#打印0到100的素数
    for循环练习
    express总结(一)
    Nodejs总结(一)
    Webpack配置及使用
  • 原文地址:https://www.cnblogs.com/mengfanrong/p/5236567.html
Copyright © 2020-2023  润新知