Java之String类

本文详细介绍了Java中的String类,包括构造方法如通过字符数组和直接赋值创建字符串对象,以及它们在内存中的存储区别。同时讲解了String类的判断功能如equals()和startsWith()等,获取功能如length()和charAt()等,并提供了实际应用示例,如用户登录场景。此外,还讨论了如何遍历字符串、统计特定字符类型个数以及字符串的转换功能,如转为字符数组和大小写转换。
摘要由CSDN通过智能技术生成

1.String类:即字符串类,其主要构造方法为:
 String(String Original),把字符串封装成字符串对象;
 举例:String s1 = new String(“hello”);
 String(char[] value),把字符数组的数据封装成字符串对象;
 举例:char[] chs = {‘h’,‘e’,‘l’,‘l’,‘o’};   
    String s2 = new String(chs);
 String(char[] value,int index, int count),从索引index开始把count个字符数组值封装成字符串对象。
 举例:char[] chs = {‘h’,‘e’,‘l’,‘l’,‘o’}; 
    String s3 = new String(chs,1,3);
 最为简单的一种方法是直接构造法:
 举例:String s4 = “hello”;
2.new创建与直接赋值:针对创建的String类的对象,通过构造方法创建的String对象,存放在java虚拟机的堆内存,堆内存里存放的是字符串常量的地址,字符串常量存放在方法区的常量池中;通过直接赋值所创建的对象直接是方法区中的常量池中的字符串常量。而语句(s1==s2)是比较s1和s2中存放的地址,显然不相同,但是s2和s3的地址相同,则会得到true结果。

3.String类的判断功能:
Object类:是类层次结构的根类,所有的类都直接或者间接继承自Object类;
如果一个方法的形参是Object,那么这里我们就可以传递Object类的任意子类对象;

boolean equals(Object obj):比较字符串的内容是否相同(区分大小写);
boolean equalsIgnoreCase(String str):比较字符串的内容是否相同(忽略大小写);
boolean startsWith(String str):判断字符对象是否以指定的str开头;
boolean endsWith(String str):判断字符对象是否以指定的str结尾;

4.String类运用举例(模拟用户登录):

public class UserLogin {
	public static void main(String [] args) {
		String username = "hxf1688";
		String password = "2e5y8hxf";
		
		for(int i=0; i < 3; i++) {
			Scanner sc = new Scanner(System.in);      //创建sc为输入类
			System.out.println("请输入用户名:");
			String user = sc.nextLine();
			System.out.println("请输入密码:");
			String psw = sc.nextLine();
			if(username.equals(user)&&password.equals(psw)) {
				System.out.println("登录成功");
				break;
			}
			else {
				if(i==2) {
					System.out.println("您输入错误次数过多,请联系管理员");
				}
				else {
					System.out.println("输入失败,您还有"+(2-i)+"尝试机会");
				}

			}
		}
	}
}

5.String类的获取功能:
int length():获取字符串的长度,也即字符个数;
char charAt(int index):获取指定索引处的字符;
int indexOf(String str):获取字符串str在字符串对象中出现的位置索引,返回str的第一个字符的索引位置;
String substring(int start):从索引start处开始截取字符串,一直到结尾;
String substring(int start, int end):从索引start(包括start)开始截取字符串,到end(不包括end)结束。

6.字符串的遍历:

for(int i=0; i < str.length() ;i++){   //注意这里使用的是str.length(),这是String类中的方法,若str为数组,则使用str.length,这里的length为属性
    System.out.println(i);
}

7.统计字符串中大写字符、小写字符、数字字符的个数:
由于英文字母不论大小写和数字,从小到大都有一定顺序,比如统计大写字符,只需判断:ch >= ‘A’ && ch <= ‘Z’,即可。

8.String类的转换功能(将String类转换为字符数组、大小写的转换):
char[] toCharArray(): 把字符串转换为字符数组;
String toLowerCase(): 把字符串转换为小写字符;
String toUpperCase():把字符串转换为大写字符;

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值