常用类 String


String类概述及其构造方法


String类概述
字符串是由多个字符组成的一串数据(字符序列)
字符串可以看成是字符数组
字符串是常量,一旦被赋值,就不能被改变。
字符串内容为空和字符串对象为空。

  •  String s = "";
    
  •  String s = null;
    

构造方法
public String() 空构造
public String(byte[] bytes) 把字节数组转成字符串
public String(byte[] bytes,int offset,int length) 把字节数组的一部分转成字符串
public String(char[] value) 把字符数组转成字符串
public String(char[] value,int offset,int count) 把字符数组的一部分转成字符串
public String(String original) 把字符串常量值转成字符串
在这里插入图片描述
运行结果

// public String():空构造
		String s1 = new String();
		System.out.println("s1:" + s1);
		System.out.println("s1.length():" + s1.length());
		System.out.println("--------------------------");

		// public String(byte[] bytes):把字节数组转成字符串
		byte[] bys = { 97, 98, 99, 100, 101 };
		String s2 = new String(bys);
		System.out.println("s2:" + s2);
		System.out.println("s2.length():" + s2.length());
		System.out.println("--------------------------");

		// public String(byte[] bytes,int index,int length):把字节数组的一部分转成字符串
		// 我想得到字符串"bcd"
		String s3 = new String(bys, 1, 3);
		System.out.println("s3:" + s3);
		System.out.println("s3.length():" + s3.length());
		System.out.println("--------------------------");

		// public String(char[] value):把字符数组转成字符串
		char[] chs = { 'a', 'b', 'c', 'd', 'e', '爱', '林', '亲' };
		String s4 = new String(chs);
		System.out.println("s4:" + s4);
		System.out.println("s4.length():" + s4.length());
		System.out.println("--------------------------");

		// public String(char[] value,int index,int count):把字符数组的一部分转成字符串
		String s5 = new String(chs, 2, 4);
		System.out.println("s5:" + s5);
		System.out.println("s5.length():" + s5.length());
		System.out.println("--------------------------");
		
		//public String(String original):把字符串常量值转成字符串
		String s6 = new String("abcde");
		System.out.println("s6:" + s6);
		System.out.println("s6.length():" + s6.length());
		System.out.println("--------------------------");
		
		//字符串字面值"abc"也可以看成是一个字符串对象。
		String s7 = "abcde";
		System.out.println("s7:"+s7);
		System.out.println("s7.length():"+s7.length());

String类的判断功能
boolean equals(Object obj) 比较字符串的内容是否相同,区分大小写
boolean equalsIgnoreCase(String str) 比较字符串的内容是否相同,忽略大小写
boolean contains(String str) 判断大字符串中是否包含小字符串
boolean startsWith(String str) 判断字符串是否以某个指定的字符串开头
boolean endsWith(String str) 判断字符串是否以某个指定的字符串结尾
boolean isEmpty() 判断字符串是否为空。

// 创建字符串对象
		String s1 = "helloworld";
		String s2 = "helloworld";
		String s3 = "HelloWorld";

		// boolean equals(Object obj):比较字符串的内容是否相同,区分大小写
		System.out.println("equals:" + s1.equals(s2));
		System.out.println("equals:" + s1.equals(s3));
		System.out.println("-----------------------");

		// boolean equalsIgnoreCase(String str):比较字符串的内容是否相同,忽略大小写
		System.out.println("equals:" + s1.equalsIgnoreCase(s2));
		System.out.println("equals:" + s1.equalsIgnoreCase(s3));
		System.out.println("-----------------------");

		// boolean contains(String str):判断大字符串中是否包含小字符串
		System.out.println("contains:" + s1.contains("hello"));
		System.out.println("contains:" + s1.contains("hw"));
		System.out.println("-----------------------");

		// boolean startsWith(String str):判断字符串是否以某个指定的字符串开头
		System.out.println("startsWith:" + s1.startsWith("h"));
		System.out.println("startsWith:" + s1.startsWith("hello"));
		System.out.println("startsWith:" + s1.startsWith("world"));
		System.out.println("-----------------------");

		// 练习:boolean endsWith(String str):判断字符串是否以某个指定的字符串结尾这个自己玩

		// boolean isEmpty():判断字符串是否为空。
		System.out.println("isEmpty:" + s1.isEmpty());

		String s4 = "";
		String s5 = null;
		System.out.println("isEmpty:" + s4.isEmpty());
		// NullPointerException
		// s5对象都不存在,所以不能调用方法,空指针异常
		System.out.println("isEmpty:" + s5.isEmpty());

运行结果
在这里插入图片描述

String类的获取功能
int length() 返回此字符串的长度。
char charAt(int index) 获取指定索引位置的字符
int indexOf(int ch) 返回指定字符在此字符串中第一次出现处的索引。
int indexOf(String str) 返回指定字符串在此字符串中第一次出现处的索引。
int indexOf(int ch,int fromIndex) 返回指定字符在此字符串中从指定位置后第一次出现处的索引。
int indexOf(String str,int fromIndex) 返回指定字符串在此字符串中从指定位置后第一次出现处的索引。
String substring(int start) 从指定位置开始截取字符串,默认到末尾。
String substring(int start,int end) 从指定位置开始到指定位置结束截取字符串。

// 定义一个字符串对象
		String s = "helloworld";

		// int length():获取字符串的长度。
		System.out.println("s.length:" + s.length());
		System.out.println("----------------------");

		// char charAt(int index):获取指定索引位置的字符
		System.out.println("charAt:" + s.charAt(7));
		System.out.println("----------------------");

		// int indexOf(int ch):返回指定字符在此字符串中第一次出现处的索引。
		System.out.println("indexOf:" + s.indexOf('l'));
		System.out.println("----------------------");

		// int indexOf(String str):返回指定字符串在此字符串中第一次出现处的索引。
		System.out.println("indexOf:" + s.indexOf("owo"));
		System.out.println("----------------------");

		// int indexOf(int ch,int fromIndex):返回指定字符在此字符串中从指定位置后第一次出现处的索引。
		System.out.println("indexOf:" + s.indexOf('l', 4));
		System.out.println("indexOf:" + s.indexOf('k', 4)); // -1
		System.out.println("indexOf:" + s.indexOf('l', 40)); // -1
		System.out.println("----------------------");

		// 自己练习:int indexOf(String str,int
		// fromIndex):返回指定字符串在此字符串中从指定位置后第一次出现处的索引。

		// String substring(int start):从指定位置开始截取字符串,默认到末尾。包含start这个索引
		System.out.println("substring:" + s.substring(5));
		System.out.println("substring:" + s.substring(0));
		System.out.println("----------------------");

		// String substring(int start,int
		// end):从指定位置开始到指定位置结束截取字符串。包括start索引但是不包end索引
		System.out.println("substring:" + s.substring(3, 8));
		System.out.println("substring:" + s.substring(0, s.length()));

运行结果
在这里插入图片描述
统计字符串内大写 小写 数字数量


		//定义一个字符串
		String s = "Hello123World";
		
		//定义三个统计变量
		int bigCount = 0;
		int smallCount = 0;
		int numberCount = 0;
		
		//遍历字符串,得到每一个字符。
		for(int x=0; x<s.length(); x++){
			char ch = s.charAt(x);
			
			//判断该字符到底是属于那种类型的
			if(ch>='a' && ch<='z'){
				smallCount++;
			}else if(ch>='A' && ch<='Z'){
				bigCount++;
			}else if(ch>='0' && ch<='9'){
				numberCount++;
			}
		}
		
		//输出结果。
		System.out.println("大写字母"+bigCount+"个");
		System.out.println("小写字母"+smallCount+"个");
		System.out.println("数字"+numberCount+"个");
	

String类的转换功能
byte[] getBytes() 把字符串转换为字节数组。
char[] toCharArray() 把字符串转换为字符数组。
static String valueOf(char[] chs) 把字符数组转成字符串。
static String valueOf(int i) 把int类型的数据转成字符串。 String类的valueOf方法可以把任意类型的数据转成字符串。
String toLowerCase() 把字符串转成小写。
String toUpperCase() 把字符串转成大写。
String concat(String str) 把字符串拼接。

// 定义一个字符串对象
		String s = "JavaSE";

		// byte[] getBytes():把字符串转换为字节数组。
		byte[] bys = s.getBytes();
		for (int x = 0; x < bys.length; x++) {
			System.out.println(bys[x]);
		}
		System.out.println("----------------");

		// char[] toCharArray():把字符串转换为字符数组。
		char[] chs = s.toCharArray();
		for (int x = 0; x < chs.length; x++) {
			System.out.println(chs[x]);
		}
		System.out.println("----------------");

		// static String valueOf(char[] chs):把字符数组转成字符串。
		String ss = String.valueOf(chs);
		System.out.println(ss);
		System.out.println("----------------");

		// static String valueOf(int i):把int类型的数据转成字符串。
		int i = 100;
		String sss = String.valueOf(i);
		System.out.println(sss);
		System.out.println("----------------");

		// String toLowerCase():把字符串转成小写。
		System.out.println("toLowerCase:" + s.toLowerCase());
		System.out.println("s:" + s);
		// System.out.println("----------------");
		// String toUpperCase():把字符串转成大写。
		System.out.println("toUpperCase:" + s.toUpperCase());
		System.out.println("----------------");

		// String concat(String str):把字符串拼接。
		String s1 = "hello";
		String s2 = "world";
		String s3 = s1 + s2;
		String s4 = s1.concat(s2);
		System.out.println("s3:"+s3);
		System.out.println("s4:"+s4);

运行结果

在这里插入图片描述

需求:把一个字符串的首字母转成大写,其余为小写。(只考虑英文大小写字母字符)

// 定义一个字符串
		String s = "helloWORLD";
String result = s.substring(0, 1).toUpperCase()
				.concat(s.substring(1).toLowerCase());
		System.out.println(result);

String类的其他功能
替换功能
String replace(char old,char new)
String replace(String old,String new)

去除字符串两空格
String trim()

按字典顺序比较两个字符串
int compareTo(String str)
int compareToIgnoreCase(String str

// 替换功能
		String s1 = "helloworld";
		String s2 = s1.replace('l', 'k');
		String s3 = s1.replace("owo", "ak47");
		System.out.println("s1:" + s1);
		System.out.println("s2:" + s2);
		System.out.println("s3:" + s3);
		System.out.println("---------------");

		// 去除字符串两空格
		String s4 = " hello world  ";
		String s5 = s4.trim();
		System.out.println("s4:" + s4 + "---");
		System.out.println("s5:" + s5 + "---");

		// 按字典顺序比较两个字符串
		String s6 = "hello";
		String s7 = "hello";
		String s8 = "abc";
		String s9 = "xyz";
		System.out.println(s6.compareTo(s7));// 0
		System.out.println(s6.compareTo(s8));// 7
		System.out.println(s6.compareTo(s9));// -16

运行结果
在这里插入图片描述

练习
1 把数组中的数据按照指定个格式拼接成一个字符串

int[] arr = { 1, 2, 3 };

		// 定义一个字符串对象,只不过内容为空
		String s = "";

		// 先把字符串拼接一个"["
		s += "[";

		// 遍历int数组,得到每一个元素
		for (int x = 0; x < arr.length; x++) {
			// 先判断该元素是否为最后一个
			if (x == arr.length - 1) {
				// 就直接拼接元素和"]"
				s += arr[x];
				s += "]";
			} else {
				// 就拼接元素和逗号以及空格
				s += arr[x];
				s += ", ";
			}
		}

		// 输出拼接后的字符串
		System.out.println("最终的字符串是:" + s);

2 字符串反转

public static String myReverse(String s) {
		// 定义一个新字符串
		String result = "";

		// 把字符串转成字符数组
		char[] chs = s.toCharArray();

		// 倒着遍历字符串,得到每一个字符
		for (int x = chs.length - 1; x >= 0; x--) {
			// 用新字符串把每一个字符拼接起来
			result += chs[x];
		}
		return result;
	}

3 统计大串中小串出现的次数

public static int getCount(String maxString, String minString) {
		// 定义一个统计变量,初始化值是0
		int count = 0;

		// 先在大串中查找一次小串第一次出现的位置
		int index = maxString.indexOf(minString);

		// 索引不是-1,说明存在,统计变量++
		while (index != -1) {
			count++;
			// 把刚才的索引+小串的长度作为开始位置截取上一次的大串,返回一个新的字符串,并把该字符串的值重新赋值给大串
			int startIndex = index + minString.length();
			maxString = maxString.substring(startIndex);
			// 继续查
			index = maxString.indexOf(minString);
		}

		return count;
	}
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java中常用String类是一个用于表示字符串的类。String类是不可变的,意味着一旦创建了一个String对象,它的值就不能改变。String类提供了许多方法来处理字符串,包括字符串的拼接、截取、替换、查找等操作。 常用String类方法包括: 1. 字符串拼接:可以使用"+"操作符或者String类的concat()方法将两个字符串连接起来。例如,str1 + str2 或者 str1.concat(str2)。 2. 字符串长度:使用String类的length()方法可以获取字符串的长度。例如,str.length()。 3. 字符串查找:使用String类的indexOf()方法可以在字符串中查找指定字符或子字符串的位置。例如,str.indexOf('a') 或者 str.indexOf("abc")。 4. 字符串截取:使用String类的substring()方法可以从一个字符串中截取指定位置的子字符串。例如,str.substring(3) 或者 str.substring(0, 5)。 5. 字符串转换:String类提供了许多方法来进行字符串与其他数据类型之间的转换。例如,将一个字符串转换为整数可以使用Integer类的parseInt()方法,将一个整数转换为字符串可以使用String类的valueOf()方法。 6. 字符串比较:String类提供了equals()方法用于比较两个字符串是否相等。例如,str1.equals(str2)。 7. 字符串替换:使用String类的replace()方法可以将字符串中的指定字符或子字符串替换为新的字符或字符串。例如,str.replace('a', 'b') 或者 str.replace("abc", "def")。 8. 字符串大小写转换:使用String类的toLowerCase()和toUpperCase()方法可以将字符串转换为全小写或全大写形式。例如,str.toLowerCase() 或者 str.toUpperCase()。 这些是String类的一些常用方法,可以满足大多数字符串处理的需求。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值