Java基础【04】常用API——String相关API

本文详细介绍Java中字符串的各种操作方法,包括长度获取、字符检索、字符串查找、大小写转换、开头和结尾判断、子串截取、空白去除、类型转换、正则表达式应用及StringBuilder的增删改插技巧。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.int length()

package string;
/**
 * int length()
 * 该方法可以返回当前字符串的长度(字符个数)
 * @author adminitartor
 *
 */
public class LengthDemo {
	public static void main(String[] args) {
		String str = "我爱java!";
		int len = str.length();
		System.out.println("length:"+len);
	}
}

2.char charAt(int index)

package string;
/**
 * char charAt(int index)
 * 返回当前字符串中指定位置处对应的字符
 * @author adminitartor
 */
public class CharAtDemo {
	public static void main(String[] args) {
		//            0123456789012345
		String str = "thinking in java"; 
		char c = str.charAt(9);
		System.out.println(c);
		
		/*
		 * 检测回文
		 * 上海自来水来自海上
		 * 
		 * 规则:正数位置上的字符与倒数位置上的字符都
		 * 一样的则是回文
		 */
		String line = "上海自来水来海自上";
		for(int i=0;i<line.length()/2;i++){
			char c1 = line.charAt(i);
			char c2 = line.charAt(line.length()-1-i);
			if(c1!=c2){
				System.out.print("不");
				break;
			}
		}
		System.out.println("是回文!");
	}
}

3.int indexOf(String str)

package string;
/**
 * int indexOf(String str)
 * 查找给定字符串在当前字符串中的位置。若当前字符串不包含
 * 给定内容,则返回值为-1.
 * @author adminitartor
 */
public class IndexOfDemo {
	public static void main(String[] args) {
		//            0123456789012345
		String str = "thinking in java";
		
		int index = str.indexOf("in");
		System.out.println("index:"+index);
		/*
		 * 重载方法允许从指定位置开始查找第一次出现的位置
		 */
		index = str.indexOf("in", 3);
		System.out.println("index:"+index);
		/*
		 * 查找给定字符串在当前字符串中最后一次出现的位置
		 */
		index = str.lastIndexOf("in");
		System.out.println("index:"+index);
	}
}

4.String toUpperCase()  和  String toLowerCase()

package string;
/**
 * 字符串提供了可以将当前字符串中的英文部分转换为全
 * 大写或全小写
 * String toUpperCase()
 * String toLowerCase()
 * 
 * @author adminitartor
 */
public class UpperLowerDemo {
	public static void main(String[] args) {
		String string = "我爱Java";
		
		String upper = string.toUpperCase();
		System.out.println("upper:"+upper);
		
		String lower = string.toLowerCase();
		System.out.println("lower:"+lower);
		
	}
}

5.boolean startsWith(String str)  和  boolean endsWith(String str)

package string;
/**
 * String startsWith(String str)
 * 判断当前字符串是否是以给定的字符串开始的
 * 
 * String endsWith(String str)
 * 判断当前字符串是否是以给定的字符串结尾的
 * 
 * @author adminitartor
 */
public class StartsWithDemo {
	public static void main(String[] args) {
		String line = "thinking in java";
		
		boolean starts = line.startsWith("think");
		System.out.println("starts:"+starts);
		
		boolean ends = line.endsWith("ava");
		System.out.println("ends:"+ends);
	}
}

6.String substring(int start,int end)

package string;
/**
 * String substring(int start,int end)
 * 截取当前字符串中指定范围内的字符串,在API中有一个
 * 特点,凡是使用两个数字表示范围时,通常都是"含头不含尾"
 * 的。
 * @author adminitartor
 *
 */
public class SubstringDemo {
	public static void main(String[] args) {
		//            0123456789012
		String str = "www.baidu.com";
		
		//截取域名
		String sub = str.substring(4,9);
		System.out.println(sub);
		
		//一个参数的则是从指定位置截取到末尾
		sub = str.substring(4);
		System.out.println(sub);
	}
}

7.String trim()

package string;
/**
 * String trim()
 * 去除一个字符串两边的空白字符
 * 
 * @author adminitartor
 *
 */
public class TrimDemo {
	public static void main(String[] args) {
		String string = "   hello			";
		System.out.println(string);
		
		String trim = string.trim();
		System.out.println(trim);
	}
}

8.String String.valueOf(其他类型);

package string;
/**
 * 字符串提供了一组静态的方法:valueOf
 * 可以将其他类型转换为字符串。常用的是将基本类型转换
 * 为字符串。
 * @author adminitartor
 */
public class ValueOfDemo {
	public static void main(String[] args) {
		int i = 123;
		String iString = String.valueOf(i);
		System.out.println(iString);
		
		iString = i+"";//任何内容与字符串连接结果还是字符串
		
		double d = 123.123;
		String dString = String.valueOf(d);
		System.out.println(dString);
	}
}

9.boolean matches(String regex)

package string;
/**
 * 字符串支持正则表达式方法一:
 * boolean matches(String regex)
 * 使用给定的正则表达式验证当前字符串是否满足格式要求。
 * 需要注意,这里正则表达式无论是否加了边界匹配符(^...$)
 * 都是做全匹配验证
 * @author adminitartor
 */
public class MatchesDemo {
	public static void main(String[] args) {
		String mail = "fancq@csdn.com";
		/*
		 * 邮箱的正则表达式:
		 * \w+@\w+(\.[a-zA-Z]+)+
		 */
		String regex = "\\w+@\\w+(\\.[a-zA-Z]+)+";
		
		boolean check = mail.matches(regex);
		if(check){
			System.out.println("是邮箱");
		}else{
			System.out.println("不是邮箱");
		}
	}
}

10.String[] split(String regex)

package string;
/**
 * 字符串支持正则表达式方法二:
 * String[] split(String regex)
 * 将当前字符串按照满足正则表达式的部分进行拆分,并返回
 * 拆分后的内容
 * @author adminitartor
 *
 */
public class SplitDemo {
	public static void main(String[] args) {
		String line = "abc123def456ghi789jkl";
		/*
		 * 按照数字部分拆分
		 * 在拆分过程中若连续匹配了两个可以拆分内容,那么
		 * 中间就会拆分出一个空字符串。但是若在字符串末尾
		 * 连续匹配,那么所有拆分出来的空字符串都会忽略。
		 */
		String[] arr = line.split("[0-9]+");
		System.out.println(arr.length);
		for(int i=0;i<arr.length;i++){
			System.out.println(arr[i]);
		}
	}
}

 11.String replaceAll(String regex,String str)

package string;
/**
 * 字符串支持正则表达式的方法三:
 * String replaceAll(String regex,String str)
 * 将当前字符串中满足正则表达式的部分替换为给定字符串。
 * @author adminitartor
 */
public class ReplaceAllDemo {
	public static void main(String[] args) {
		String line = "abc123def456ghi789jkl";
		/*
		 * 将当前字符串中的数字部分替换为#NUMBER#
		 */
		line = line.replaceAll("[0-9]+", "#NUMBER#");
		System.out.println(line);
	}
}

12.StringBuilder类提供的增、删、改、插方法

package string;
/**
 * 字符串的设计关注的是字符串的重用,对于修改字符串而言,
 * 效率与资源消耗都比较大,为此字符串不适合频繁的修改。
 * 对此,java提供了一个专门用于修改字符串内容的类:
 * StringBuilder。其内部维护一个可变的char数组,所以修改
 * 都是建立在一个StringBuilder对象上完成,不会反复创建
 * 新对象。并且其还提供了便于修改字符串内容的相关方法,
 * 包括的操作有:增,删,改,插。
 * @author adminitartor
 */
public class StringBuilderDemo1 {
	public static void main(String[] args) {
		//默认创建内部表示空字符串
//		StringBuilder builder = new StringBuilder();
		
		String string = "努力学习java";
		StringBuffer builder = new StringBuffer(string);
		
		/*
		 * append():向当前字符串末尾追加给定内容
		 */
		builder.append(",为了找个好工作!");
		//获取builder内部修改好的字符串
		string = builder.toString();
		System.out.println(string);
		
		/*
		 * replace():将当前字符串指定范围内的内容替换
		 * 为给定字符串(修改部分内容)
		 */
		//努力学习java,为了找个好工作!
		//努力学习java,就是为了改变世界!
		builder.replace(9, 16, "就是为了改变世界");
		System.out.println(builder.toString());
		
		/*
		 * delete():删除当前字符串部分内容
		 */
		//努力学习java,就是为了改变世界!
		//,就是为了改变世界!
		builder.delete(0, 8);
		System.out.println(builder.toString());
		
		/*
		 * insert():将指定内容插入到指定位置
		 */
		//,就是为了改变世界!
		//活着,就是为了改变世界!
		builder.insert(0, "活着");
		System.out.println(builder.toString());
	}
}

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值