String字符串的常见方法总结

本文介绍了Java中字符串处理的一些基本方法,如charAt用于获取字符,compareTo比较字符串,equals判断内容等,还包括substring、trim、join、format和getBytes等实用函数的用法和示例。
摘要由CSDN通过智能技术生成

charAt

charAt( ):找到指定的下标处对应的元素

package com.yym.Demo;

public class Demo01 {
	public static void main(String[] args) {
		String s1 = "阴天傍晚车窗外";
		
		for(int i = 0;i < s1.length();i++) {
			char c = s1.charAt(i);
			System.out.println(c);
		}	
		//通过字符数组
		char[] array = s1.toCharArray();//将字符串转换成char[]字符数组
		for(int i = 0;i < array.length;i++) {
			char c = array[i];
			System.out.println(c);
		}
	}
}

运行结果:
阴
天
傍
晚
车
窗
外
阴
天
傍
晚
车
窗
外

compareTo

compareTo( ):比较两个字符串的大小关系

String类implements实现了Comparable接口,重写了compareTo( )方法

package com.yym.Demo;
//字符串比较
//实现方法:String类implements实现了Comparable接口,重写了compareTo()方法
public class Demo02 {
	public static void main(String[] args) {
		String s1 = "abbg";
		String s2 = "abb";
		System.out.println(s1.compareTo(s2));
	}
}

运行结果:
1

equals

equals( ):判断两个字符串的内容是否一模一样

package com.yym.Demo;
// 字符串的内容等值比较
// 实现思路: 重写object类的equals()方法
public class Demo03 {
	public static void main(String[] args) {
		//字符串常量池
		String s1 = "just do it";
		String s2 = "just do it";
		System.out.println(s1 == s2);// 比较内存地址
		System.out.println(s1.equals(s2));// 比较内容
		//在堆区重新分配空间
		String s3 = new String("just do it");
		String s4 = new String("just do it");
		System.out.println(s3 == s4);// 比较内存地址
		System.out.println(s3.equals(s4));// 比较内容
	}
}

运行结果:
true
true
false
true

字符串查找方法

indexOf()方法

indexOf():从原字符串中查找目标字符串,返回第一次出现的位置

package com.yym.Demo;

public class Demo4 {
	public static void main(String[] args) {
		String s = "唧唧复唧唧木兰当户织";
		String target = "唧唧";
		//indexOf()方法
		//如果存在:返回该目标字符串的下标(>=0)
		//如果不存在:返回-1
		int index1 = s.indexOf(target);
		System.out.println(index1);
	}
}

运行结果:
0

lastIndexOf()方法

lastIndexOf():从原字符串中查找目标字符串,返回最后一次出现的位置

package com.yym.Demo;

public class Demo4 {
	public static void main(String[] args) {
		String s = "唧唧复唧唧木兰当户织";
		String target = "唧唧";
		//lastIndexOf()方法:
		//如果存在:返回该目标字符串的下标(>=0)
		//如果不存在:返回-1
		int index2 = s.lastIndexOf(target);
		System.out.println(index2);
	}
}

运行结果:
3

contains()方法

contains():判断原字符串中是否存在目标字符串

package com.yym.Demo;

public class Demo4 {
	public static void main(String[] args) {
		String s = "唧唧复唧唧木兰当户织";
		String target = "唧唧";
		// contains()方法:
		// 如果存在,则返回true
		// 如果不存则,则返回false
		boolean isContains = s.contains(target);
		System.out.println(isContains);
	}
}

运行结果:
true

satrtsWith()方法

satrtsWith():判断原字符串是否以目标字符串开头

package com.yym.Demo;

public class Demo4 {
	public static void main(String[] args) {
		String s = "唧唧复唧唧木兰当户织";
		String target = "唧唧";
		//startsWith
		// 判断原字符串是否以目标字符串开头
		// 如果是,则返回true
		// 如果不是,则返回false
		boolean isStarts1 = s.startsWith(target);
		System.out.println(isStarts1);
	}
}

运行结果:
true

endsWith( )方法

endsWith( ):判断原字符串是否以目标字符串结尾

package com.yym.Demo;

public class Demo4 {
	public static void main(String[] args) {
		String s = "唧唧复唧唧木兰当户织";
		String target = "唧唧";
		//endsWith
		// 判断原字符串是否以目标字符串结尾
		// 如果是,则返回true
		// 如果不是,则返回false
		boolean isStarts2 = s.endsWith(target);
		System.out.println(isStarts2);
	}
}

运行结果:
false

replace( )

replace( ):将字符串里面某个内容全部替换成指定的内容

package com.yym.Demo;

public class Demo05 {
	public static void main(String[] args) {
		// 替换字符串
		// ip地址无效化 :"."替换为"[.]"
		String ip = "127.0.0.1";
		//字符替换字符
		String ret1 = ip.replace('.', '#');
		// 字符串替换字符串
		String ret2 = ip.replace(".", "[.]");
		
		System.out.println("原字符串:" + ip);
		System.out.println("替换结果:" + ret1);
		System.out.println("替换结果:" + ret2);
	}
}

运行结果:
原字符串:127.0.0.1
替换结果:127#0#0#1
替换结果:127[.]0[.]0[.]1

replaceAll( )

replaceAll( ):将字符串里面某个内容全部替换成指定的内容(支持正则表达式

使用正则表达式进行匹配:[\\,\\.\\$] 匹配到1个字符内容;[l,l\.\\$]+ 匹配到多个字符内容

package com.yym.Demo;
//字符串的替换
public class Demo6 {
	public static void main(String[] args) {
		String s = "A,,B.C$D,E.F$$G...";
		
		//将","".""$"替换为"#"
//		String ret = s.replace(",", "#").replace(".", "#").replace("$", "#");

		//使用正则表达式进行匹配
		//[\\,\\.\\$] 匹配到1个字符内容
		//[l,l\.\\$]+ 匹配到多个字符内容
		String ret1 = s.replaceAll("[\\,\\.\\$]", "#");
		String ret2 = s.replaceAll("[\\,\\.\\$]+", "#");
		
		//[A-Z]+ 匹配到多个大写字母
		String ret3 = s.replaceAll("[A-Z]+", "#");
		
		//"."代表1个正则表达式,匹配任意字符
		// "\\."代表1个普通字符串内容,仅匹配"."
		String ret4 = s.replaceAll("\\.", "#");
		
		System.out.println(s);
		System.out.println(ret1);
		System.out.println(ret2);
		System.out.println(ret3);
		System.out.println(ret4);
	}
}

运行结果:
A,,B.C$D,E.F$$G...
A##B#C#D#E#F##G###
A#B#C#D#E#F#G#
#,,#.#$#,#.#$$#...
A,,B#C$D,E#F$$G###

split( )方法

split:分割字符串(不同方法)

package com.yym.Demo;

import java.util.Arrays;

public class Demo11 {
	public static void main(String[] args) {
		String s1 ="北京#上海#大连#连云港#南京#杭州#深圳#齐齐哈尔#乌鲁木齐";
		String[] ret1 = s1.split("#"); 
		// 按照普通字符内容
		System.out.println(s1);
		System.out.println(Arrays.toString(ret1));
		
		//按照正则表达式的特殊字符进行分割
		String s2 ="北京+上海+南京+苏州+杭州+常州+无锡+深圳+乌鲁木齐";
		String[] ret2 = s2.split("\\+");
		// + 属于正则表达式的特殊符号,必须转义
		System.out.println(s2);
		System.out.println(Arrays .toString(ret2));
		
		// 按照正则表达式切割字符串
		String s3 ="北京7上海1大连6连云港3南京2杭州5深圳6文齐哈尔9乌鲁木齐";
		String[] ret3 = s3.split("[0-9]");
		System.out.println(s3);
		System.out.println(Arrays.toString(ret3));
		
		String s4 ="北京A上海F南京K苏州W杭州U常州M无锡S深圳w乌鲁木齐";
		String[] ret4 = s4.split("[A-Z]");
		System.out.println(s4);
		System.out.println(Arrays.toString(ret4));
	}
}

运行结果:
北京#上海#大连#连云港#南京#杭州#深圳#齐齐哈尔#乌鲁木齐
[北京, 上海, 大连, 连云港, 南京, 杭州, 深圳, 齐齐哈尔, 乌鲁木齐]
北京+上海+南京+苏州+杭州+常州+无锡+深圳+乌鲁木齐
[北京, 上海, 南京, 苏州, 杭州, 常州, 无锡, 深圳, 乌鲁木齐]
北京7上海1大连6连云港3南京2杭州5深圳6文齐哈尔9乌鲁木齐
[北京, 上海, 大连, 连云港, 南京, 杭州, 深圳, 文齐哈尔, 乌鲁木齐]
北京A上海F南京K苏州W杭州U常州M无锡S深圳w乌鲁木齐
[北京, 上海, 南京, 苏州, 杭州, 常州, 无锡, 深圳w乌鲁木齐]

substring( )方法

substring( ):从下标beginIndex一直截取到字符串最后,每次截取,都会产生一个新的字符对象

package com.yym.Demo;

public class Demo07 {
	public static void main(String[] args) {
		// 字符串是不可变
		String s = "我本将心向明月";
		
		//每次截取,都会产生一个新的字符对象
		String ret = s.substring(4);
		
		System.out.println(s);
		System.out.println(ret);
	}
}

运行结果:
我本将心向明月
向明月

trim( )方法

trim( ):去除首尾"空白字符"

package com.yym.Demo;

public class Demo08 {
	public static void main(String[] args) {
		// 空白字符 :空格 t r \n
		String s = " AB\tC\t\r\n";
		// 去除首尾"空白字符"
		s = s.trim();
		System.out.println(s);
		System.out.println(s.length());
	}
}

拼接字符串

String.join( )方法

String.join( ):将多个字符串元素使用指定字符串,拼接成完整字符串

package com.yym.Demo;

public class Demo9 {
	public static void main(String[] args) {
		//String.join():普通拼接
		// 传入数组
		String[] arr = {"西安","宝鸡","渭南","安康","汉中","铜川","延安"};
		String ret1 = String.join("$", arr);
		System.out.println(ret1);
		
		// 传入动态参数
		String ret2 = String.join("$", "西安","宝鸡","渭南","安康");
		System.out.println(ret2);
		
	}
}

运行结果:
西安$宝鸡$渭南$安康$汉中$铜川$延安
西安$宝鸡$渭南$安康

String.format( )方法
String.format( ):将多个数据元素按照指定格式,拼接成完整字符串

package com.yym.Demo;

public class Demo10 {
	public static void main(String[] args) {
		//String.format():格式化拼接
		String ret3 = String.format("商品价格¥%f,库存%d,卖家%s", 1234.56,100,"今晚不睡觉");
		System.out.println(ret3);
	}
}

运行结果:
商品价格¥1234.560000,库存100,卖家今晚不睡觉

getBytes( )方法

getBytes( ):按照编码获取字节值

.getBytes():按照默认Unicode码获取字节值;.getBytes("UTF-8"):按照UTF-8码获取字节值

package com.yym.Demo;

import java.io.UnsupportedEncodingException;
import java.util.Arrays;
//字符编码
//ASCII码:包含A-Z a-z 、符号、占1个字节
//Unicode码:包含主流编码集,占2个字节
//UTF-8:占3个字节
public class Demo13 {
	public static void main(String[] args) throws UnsupportedEncodingException {
		String s1 = "A";
		String s2 ="中";
		String s3 ="中";
		// 获取字符串的字节数组
		byte[] b1 = s1.getBytes(); // 按照默认Unicode码获取字节值
		byte[] b2 = s2.getBytes(); // 按照默认Unicode码获取字节值
		byte[] b3 = s3.getBytes("UTF-8"); // 按照UTF-8码获取字节值
		System.out.println("A=" + Arrays.toString(b1));
		System.out.println("中=" + Arrays.toString(b2));
		System.out.println("中=" + Arrays.toString(b3));
	}
}

运行结果:
A=[65]
中=[-42, -48]
中=[-28, -72, -83]

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值