Java中的String类

String 概述

  • java.lang.String 类代表字符串,String类定义的变量可以用于指向字符串对象,然后操作该字符串。

  • java程序中的所有字符串文字( 例如:“abc“ )都是此类的对象。

    String name = "小黑" ;
    String schoolname = "Tom" ;
    

String类的特点详解

  • String其实常被称为不可变字符串类型,它的对象在创建后不能被更改。

String是不可变字符串的原因?

  • String变量每次的修改其实都是产生并指向了新的字符串对象。
  • 原来的字符串对象都是没有改变的,所以称不可变字符串。

String创建字符串对象的两种方式

  1. 直接使用 " " 定义。(推荐方式)

    String name = "内容" ;
    
  2. 通过String类的构造器创建对象

    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-5R9RxCaT-1649840351390)(C:\Users\gwang\Desktop\Strings.png)]

两种创建方式的区别

  • 以 " " 方式给出的字符串对象字符串常量池中存储,并且相同内容只存一份
  • 构造器new对象,每new一次都会产生一个新对象,放在堆内存中分开存储。

String 字符串内容比较(equals)

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-tVspoVF4-1649840351398)(C:\Users\gwang\Desktop\equals.png)]

字符串变量.equals(要比较的内容);  // 如果相等返回true,否则返回false
字符串变量.equalsIgnoreCase(要比较的内容);  // 如果相等返回true,否则返回false  并且 不区分大小写

String 常用方法

String常用方法

String name = "测试java中的String字符串内容";
// 变量名.length() ---- 字符串的长度
int a = name.length();
System.out.println(a);   // 输出19

// 变量名.charAt() ---- 获取字符串某个索引对应的字符
System.out.println( name.charAt(2) );   // 输出索引值为2的字符【是 j 】
// 利用length和charAt遍历字符串中的每个字符
for (int i=0;i<name.length();i++) {
	System.out.print( name.charAt(i) +" " );
}

// 变量名.subString(第一个索引值,第二索引值) ---- 当前索引截取到指定索引(包前不包后)
String sub = "String功能很强大";		
String rs1 = sub.substring(6, 8);   // 截取 功能
System.out.println( rs1 );   // 输出 功能

// 变量名.subString(索引值) ---- 当前索引截取到末尾
String rs2 = sub.substring(6);   // 截取 功能很强大
System.out.println( rs2 );   // 输出 功能很强大

// 变量名.replace(要替换的内容,替换词) ---- 将第二个值替换成第一个值 
String rep = "小高是一个可爱的00后,小高非常棒,小高有好多零食。";	
String cs1 = rep.replace("小高", "**");
System.out.println( cs1 );

// 变量名.contains(内容) ---- 测试该字符串中是否有你写的内容 【返回类型 Boolean】
System.out.println( rep.contains("小孩") );
System.out.println( "rep字符串中是否有非常?"+ rep.contains("非常") );
		
// 变量名.startsWith(内容) ---- 判断是不是你写的内容开头 【返回类型 Boolean】
System.out.println( rep.startsWith("小孩") );
System.out.println( "rep字符串中是不是以小高开头?"+ rep.startsWith("小高") );	
/*
 * 例题:用户输入电话号码,要求中间四位用*代替 158****7211 
 * 分析: 用subString把中间四位截取出来用*代替   替换用replace方法

变量名.subString(第一个索引值,第二索引值) ---- 当前索引截取到指定索引(包前不包后)
变量名.replace(要替换的内容,替换词) ---- 将第二个值替换成第一个值 
 */

import java.util.Scanner;
public class SubString {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner nums = new Scanner(System.in);
		System.out.print("请输入您的手机号:");
		String s = nums.next();  // Scanner输入
		
		String si = s.substring(3, 7); // 截取中间四位 赋值给si变量
		s = s.replace(si, "****");  // 将截取的四位数替换成**** 并赋值给输入的手机号的变量
		System.out.print(s);
	} // main
}

// 例题: 随机生成一个五位的验证码,可以是大写字母、小写、数字
import java.util.Random;
public class StringCode {
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		String codes="abcdefghijklmnopkrstuvwxyzABCDEFGHIJKLMNOPQRSTUVWXYZ0123456789";
		Random r = new Random();
		String yzm ="" ;  // 用来存验证码
		for (int i=0;i<=4;i++) { 			
			int index = r.nextInt(codes.length());  // 获取字符串中随机的一个索引值
			yzm += codes.charAt(index);  // 根据索引值获取内容 并且 赋值给 yzm变量
		}
		System.out.print(yzm);
	}
}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值