Java字符串练习1

要求:完成一个java application应用程序,完成字符串的各种操作。
1、操作包括字符串的初始化赋值和输出;
2、操作包括两个字符串相加合成为一个新字符串;
3、操作包括两个字符串比较其是否相同;
4、操作包括已知一个字符串,查找某一子字符串是否被包含在此字符串之中,如果包含,包含了多少次;
5、操作包括已知一个字符串及其包含的某一子字符串,把此子字符串替换为其他的新的指定字符串;
6、操作包括对特定字符串与数值之间的相互转换;
7、操作包括字符串与字节数组之间的相互转换;
8、操作包括从格式化字符串输入数值和利用格式化字符串输出数值;

1、思路与知识点

本题目主要是对String类下的方法进行练习,各要求中的String类方法可以通过查阅jdk手册来进行学习。下面将对任务中用到的以及常用的String类方法进行总结。

  1. 比较两个字符串是否相同
    比较字符串切记不能用“==”,而是可以选用下列两种方法:

    1:
     equals(Object anObject) :将此字符串与指定的对象比较
     eg:
     	System.out.println("ac".equals("ac"));//true
     	System.out.println("a".equals("ac"));//false
     	
     equalsIgnoreCase(String anotherString) :忽略大小写将此 String 与另一个String比较
     eg:
     	System.out.println("AbC".equalsIgnoreCase("aBc"));//true
    	
    2:
    compareTo(String anotherString) :按字典顺序比较两个字符串
    //前后一致输出0;前小后大输出为负数;前大后小输出为正数。
    //对比是拿前一个字符串的第一个字母和后面字符串的第一个字母比较,若相等顺位延续;否则就结束比较。
    eg:
    		int n = "abc".compareTo("abc");
    		System.out.println(number);//0
    		int n1 = "abc".compareTo("acb");
    		System.out.println(number1);//-1
    		int n2 = "acb".compareTo("abc");
    		System.out.println(number2);//1
    
  2. 在字符串中查找子字符串,获取子字符串出现的次数

    contains(CharSequence s) :当且仅当此字符串包含指定的 char 值序列时,返回 true,否则返回false。
    eg:		
    	System.out.println("ashkah/sdj".contains("kah/"));//true
    	System.out.println("asdjsf.ds".contains(".das"));//false
     	
    int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 
    
  3. 把一个字符串中的子字符串替换为其他的新的指定字符串

    replace(CharSequence target, CharSequence replacement) :使用指定的字面值替换序列替换此字符串所有匹配字面值目标序列的子字符串。
    eg:
    	String ns = "is the function".replace("function","method");
    
  4. 对特定字符串与数值之间的相互转换

    charAt(int index) :返回指定索引处的 char 值。
    eg:
    	char c = "发货时间安化考试".charAt(6);
    
  5. 字符串与字节数组之间的相互转换

    getBytes(): 使用平台的默认字符集将此 String 编码为 byte 序列,并将结果存储到一个新的 byte 数组中。
    eg:
    	byte[] bytes = "abcd".getBytes();
    
  6. 从格式化字符串输入数值和利用格式化字符串输出数值

    format(String format, Object... args) :使用指定的格式字符串和参数返回一个格式化字符串。
    

2、代码

/*
完成一个java application应用程序,完成字符串的各种操作。
	操作包括字符串的初始化赋值和输出。
	操作包括两个字符串相加合成为一个新字符串。
	操作包括两个字符串比较其是否相同。
	操作包括已知一个字符串,查找某一子字符串是否被包含在此字符串之中,如果包含,包含了多少次。
	操作包括已知一个字符串及其包含的某一子字符串,把此子字符串替换为其他的新的指定字符串。
	操作包括对特定字符串与数值之间的相互转换。
	操作包括字符串与字节数组之间的相互转换。
	操作包括从格式化字符串输入数值和利用格式化字符串输出数值。
*/
public class StringWork{
	public static void main(String[] args){
		//1、字符串的初始化赋值和输出
		String s1 = "this is a test";//字符串的初始化赋值
		System.out.println(s1);//字符串的输出


		//2、两个字符串相加合成为一个新的字符串
		String s2 = ",this is a sum";//定义String类型变量s2
		String s3 = s1 + s2;//字符串相加
		System.out.println(s3);//输出


		//3、比较两个字符串是否相同
		//有两种方法:equals和compareTo
		//1:
		System.out.println("text".equals("text"));//true
		System.out.println("text".equals("te"));//false
		//2:
		int c = "tec".compareTo("ta");
		System.out.println(c);//前大后小输出为正数
		int c1 = "ta".compareTo("tec");
		System.out.println(c1);//前小后大输出为负数
		int c2 = "ta".compareTo("ta");
		System.out.println(c2);//字符串相同输出为0


		//4、已知一个字符串,查找某一子字符串是否被包含在此字符串之中,如果包含,包含了多少次
		String s4 = "abcdsja.hd-jasfjabc/sabc";	//定义子字符串
		String s5 = "abc";//定义子字符串
		//查找字符串是否被包含在此字符串中,包含输出true,不包含输出false
		System.out.println(s4.contains(s5));//true

		//输出包含次数方法:int indexOf(String str, int startIndex):从指定的索引处开始,返回第一次出现的指定子字符串在此字符串中的索引。 
		int a = 0;//定义一个int型变量a,用于记录包含次数
		int index = -1;//定义int型变量index,用于判断指定索引是否查询完毕
		while ((index = s4.indexOf(s5,index)) != -1){//如果未出现该字符,则返回 -1,因此index值为-1说明查询完毕,结束while循环
			index+=3;//因为指定索引字符串s5是三位,因此每次查找加3
			a++;//查找一次a自增1用于记录包含次数
		}
		System.out.println("包含次数:"+a);//3


		//5、已知一个字符串以及其包含的某一子字符串,把此子字符串替换为其他的新的指定字符串
		System.out.println("this is a example--this is a test".replace("example","has replaced"));


		//6、对特定字符串与数值之间的相互转换。
		char[] chars = "defgh".toCharArray();//定义一个char数组,使用toCharArray()方法将字符串转换成字符数组存储在chars中
		for (int k = 0;k<chars.length;k++){//对数组进行遍历
			int cc = chars[k];//定义一个int型变量用于表示字符对应的数值
			System.out.println(cc);//输出
		}



		//7、字符串与字节数组之间的相互转换
		byte[] bytes = "abcd".getBytes();//定义byte数组并将字符串转换成byte数组的格式
		for (int j = 0;j<bytes.length ;j++ ){//对byte数组进行遍历
			System.out.println(bytes[j]);//输出的是字节大小,分别是97 98 99 100
		}


		//8、从格式化字符串输入数值和利用格式化字符串输出数值
		System.out.println("格式化-17转换成十六进制:"+String.format("%x",17));//使用format方法,前面是格式后面是需要格式化的文本
		System.out.println("格式化-转换成字符串类型:"+String.format("%s",123456789));

	}

}


3、运行结果

在这里插入图片描述

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值