Java基础之String类

Java基础

String类

1.final修饰,不可以有子类
2.String str1 = new String(“hello”);//常量池+空间
String str2 = “hello”;//常量池
这两种编写方式在内存中存储方式不一样。
3.字符串不可变
final char[] value;
4.StringBuilder(线程不安全) StringBuffer(线程安全) ------ 字符串可变
5. 常用方法
5.1 length() ---------获取字符串长度
5.2 trim() ---------去掉字符串的前后空格
5.3 equals() , hashCode() , toString() ---------重写的方法
5.4 compareTo() --------两个字符串比较
“abc”.compareTo(“abc”)==0
5.5 equalsIgnoreCase() ---------比较大小,忽略大小写
“abc”.equalsIgnoreCase(“abc”)-------true
5.6 charAt() -------指定位置的字符
5.7 indexOf()lastIndexOf() --------子串所在位置,找到返回索引,找不到返回-1
5.8 subString() -------截取子串
5.9 startsWith()endsWith() --------判断前缀和后缀
5.10 toUpperCase()toLowerCase() --------大小写转换
5.11 contains() -------判断是否包含字串,返回类型为boolean
5.12 valueOf() -------把各种类型转成字符串
5.13 toCharArray() -------将字符串转成字符数组
5.14 isEmpty() --------判断字符串是否为空
6. 正则表达式
表示字符串的判断条件
例子:电话号---------1[356789][0-9]{9}

// 判断字符串:
// 由3个字母组成
// 第一个字母是a/b/c
// 第二个字母是d/e/f/g
// 第三个字母是x/y/z
// System.out.println(str.matches("[abc][defg][xyz]"));

// 匹配由一个字母组成的字符串
// System.out.println(str.matches("[a-zA-Z]"));
// 匹配由一个数字组成的字符串
// System.out.println(str.matches("[0-9]"));
// System.out.println(str.matches("\d"));
// 匹配由一个字符组成的字符串,但不是a/b/c
// [^…] 表示除了这些字符
System.out.println(str.matches("[^abc]"));
// 匹配由a开头的由2个字符组成的字符串

// . 表示通配符,可以匹配任意一个类型的字符
// System.out.println(str.matches(“a.”));
// 判断是否是一个 .
// \\. Java先转义为\. ,正则再转义为.
// System.out.println(str.matches("\\."));
// 怎么匹配 \ “c:\\java”
// \\\\ Java先转义为\\ ,正则再转义为\
System.out.println(str.matches("\\\\"));

// 数量词
// + 表示之前的字符至少出现1次 >= 1
// System.out.println(str.matches(“a.+”));
// 匹配由小写字母开头由数字结尾的字符串
// * 表示之前的字符可有可无 >= 0
// System.out.println(str.matches("[a-z].*\\d"));
// 匹配由a开头至多2个字符组成的字符串
// ? 表示之前的字符至多出现1次 <= 1
System.out.println(str.matches(“a.?”)); a ab

// 匹配由5个小写字母组成的字符串
// {n} 表示之前的字符恰好出现n次 == n
// System.out.println(str.matches("[a-z]{5}"));acccc
// 匹配至少由5个小写字母组成的字符串
// System.out.println(str.matches("[a-z]{5,}"));
// 匹配由8-12个小写字母组成的字符串
System.out.println(str.matches("[a-z]{8,12}"));
练习

package com.java.day10;

import java.util.Scanner;

public class Test {

	public static void main(String[] args) {
		//1.输入一个字符串,然后判断字符串是否是一个小数字符串
		//10.28	 0.56  3.00  13.8  0.652
		Scanner sc = new Scanner(System.in);
		//System.out.println("请输入一个小数:");
		//String str = sc.next();
		//String regex1 = "[1-9][0-9]*\\.[0-9]+";
		//String regex2 = "0\\.[0-9]+";
		//System.out.println(str.matches("(0|([1-9][0-9]*))\\.[0-9]+"));
		
		//2.校验密码:8-20位,小写字母/大写字母/数字中至少两种
		//[a-zA-Z0-9]{8,20}
		System.out.println("密码:");
		String str2 = sc.next();
		if(str2.matches("[a-zA-Z0-9]{8,20}")) {
			if(!str2.matches("[a-z]{8,20}") && !str2.matches("[A-Z]{8,20}") && !str2.matches("[0-9]{8,20}")) {
				System.out.println("true");
			}else {
				System.out.println("false");
			}
		}else {
			System.out.println("false");
		}
	}

}

7.String常用方法(续)
replaceAll()---------替换字符串的某些字符
split()-------字符串分割

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值