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);
	}

}

时间: 2024-12-29 01:32:58

JAVA学习第三十课(经常使用对象API)- String类:类方法练习的相关文章

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 j

JAVA学习第三十六课(常用对象API)- 集合框架(四)— Set集合:HashSet集合演示

随着Java学习的深入,感觉大一时搞了一年的ACM,简直是明智之举,Java里很多数据结构.算法类的东西,理解起来就轻松多了 Set集合下有两大子类开发常用 HashSet集合 .TreeSet集合 Set集合的元素是不重复且无序 一.HashSet集合 API文档解释:此类实现 Set 接口,由哈希表(实际上是一个 HashMap 实例)支持.它不保证 set 的迭代顺序:特别是它不保证该顺序恒久不变.此类允许使用null 元素. 此类为基本操作提供了稳定性能,注意,此实现不是同步的. 由上可

JAVA学习第三十五课(常用对象API)- 集合框架(三)—Vector、LinkedList、ArrayList集合演示

集合框架构成图 摘自百度图片 一.Vector集合 演示 虽然Vector已经不常用了,但是还是要了解一下其中的方法 import java.util.ArrayList; import java.util.Enumeration; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.ListIterator; import java.util.Vector

JAVA学习第三十二课(常用对象API)- 基本数据类型对象包装类

将基本数据类型(8种:int..)封装成对象的好处就是可以在对象中封装更多的功能和方法来操控该数据 常见的操作就是:用于基本数据类型与字符串之间的转换 基本数据类型对象包装类一般用于基本类型和字符串之间的转换 基本类型----->字符串 1.基本类型数值+"" 2.用string类中的valueOf(基本类型数值) 3.用Integer.ValueOf(); 字符串-->基本类型数值 1.使用包装类中的静态方法XXX  parseXXX("XXXX")比

JAVA学习第五十课 — IO流(四)转换流

一.键盘录入 System.out:标准输出设备,控制台 System.in:标准输入设备,键盘 输入演示 输入字符串遇到回车,打印,输入over,输入结束 PS:键盘的录入只读取一个字节,先将字节拼一个字符串,所以需要一个容器,再参与over的判断 import java.io.*; public class Main { public static void main(String[] args) throws IOException { InputStream in = System.in

JAVA学习第三十四课 (经常使用对象API)—List集合及其子类特点

整个集合框架中最经常使用的就是List(列表)和Set(集) 一.List集合 && Set的特点 Collection的子接口: 1.List:有序(存入和取出的顺序一致),元素都有索引且能够反复    API文档解释:有序的 collection(也称为序列).此接口的用户能够对列表中每一个元素的插入位置进行精确地控制.用户能够依据元素的整数索引(在列表中的位置)訪问元素,并搜索列表中的元素. 2.Set:元素不能反复,无序,有可能会有序    API文档解释:一个不包括反复元素的 c

JAVA学习第三十九课(常用对象API)- 集合框架(七)— Map集合及其子类对象

一.Map集合常见子类 HashTable:内部结构是哈希表,同步,此实现提供所有可选的映射操作,不允许使用 null 值和 null 键 (HashTable下有子类Properties,使用频率非常高,用来存储键值对型的配置文件信息和IO技术相结合) HashMap:内部结构是哈希表,不同步,此实现提供所有可选的映射操作,并允许使用 null 值和 null 键. TreeMap:内部结构是二叉树,不同步,可以对Map集合中的键进行排序. 二.HashMap演示 import java.ut

JAVA学习第三十四课(常用对象API)- 集合框架(二)—List集合及其子类特点

整个集合框架中最常用的就是List(列表)和Set(集) 一.List集合 && Set的特点 Collection的子接口: 1.List:有序(存入和取出的顺序一致),元素都有索引且可以重复    API文档解释:有序的 collection(也称为序列).此接口的用户可以对列表中每个元素的插入位置进行精确地控制.用户可以根据元素的整数索引(在列表中的位置)访问元素,并搜索列表中的元素. 2.Set:元素不能重复,无序,有可能会有序    API文档解释:一个不包含重复元素的 coll

JAVA学习第三十八课(常用对象API)- 集合框架(六)— Map集合及其常用方法

一.Map集合特点 Map集合(双列集合)一次添加一对元素,Collection集合(单列集合)一次添加一个元素 接口 Map<K,V>,实际上存储的是键值对 特点: 将键映射到值的对象.一个映射不能包含重复的键:每个键最多只能映射到一个值. 也就是说Map中必须保证键的唯一性 二.常用方法 1.添加:value = put(key,value);返回前一个和key相关联的值,如果没有返回null 2.删除:void clear();把Map中的所有映射关系清除 value remove(ke