网站建设什么时候好,网站建设 长沙开福区,网站建设售前,商务网站要怎么做java.lang.String 是 Java 中最核心的字符串操作类#xff0c;其方法覆盖字符串判断、查找、截取、替换、转换、拼接等核心场景#xff0c;以下按功能分类总结最常用的语法 / 方法#xff0c;附示例和关键说明#xff1a;
一、基础属性 / 构造#xff08;初始化 / 核心属性…java.lang.String是 Java 中最核心的字符串操作类其方法覆盖字符串判断、查找、截取、替换、转换、拼接等核心场景以下按功能分类总结最常用的语法 / 方法附示例和关键说明一、基础属性 / 构造初始化 / 核心属性1. 字符串初始化// 直接赋值推荐复用常量池Strings1hello;// 构造方法新对象极少用Strings2newString(hello);Strings3newString(newchar[]{h,e,l,l,o});// 字符数组转字符串2. 核心属性只读Stringshello;intlens.length();// 获取长度5注意区别于数组的length属性booleanemptys.isEmpty();// 判断是否为空字符串长度为0false二、字符串判断 / 比较相等、包含、匹配方法功能说明示例equals(Object obj)严格比较内容区分大小写abc.equals(ABC) → falseequalsIgnoreCase(String str)忽略大小写比较内容abc.equalsIgnoreCase(ABC) → truecontains(CharSequence s)判断是否包含子串hello.contains(el) → truestartsWith(String prefix)判断是否以指定前缀开头hello.startsWith(he) → trueendsWith(String suffix)判断是否以指定后缀结尾hello.endsWith(lo) → truematches(String regex)正则表达式匹配123.matches(\\d) → truecompareTo(String another)按 Unicode 值比较大小字典序a.compareTo(b) → -1关键注意equals避免空指针建议用常量串在前如abc.equals(s)s 为 null 时返回 false而非 NPE比较的是对象地址切勿用 比较字符串内容。三、字符串查找 / 索引定位字符 / 子串方法功能说明示例charAt(int index)获取指定索引的字符索引从 0 开始hello.charAt(1) → eindexOf(String str)查找子串首次出现的索引无则 - 1hello.indexOf(l) → 2indexOf(String str, int fromIndex)从指定索引开始查找hello.indexOf(l,3) → 3lastIndexOf(String str)查找子串最后出现的索引hello.lastIndexOf(l) → 3isEmpty()判断是否为空串长度 0 .isEmpty() → trueisBlank()Java 11判断是否为空白串含空格 / 换行 \n.isBlank() → true四、字符串截取 / 拆分分割、截取子串1. 截取子串Stringshello-world;Stringsub1s.substring(2);// 从索引2截取到末尾llo-worldStringsub2s.substring(2,5);// [2,5)左闭右开llo2. 拆分字符串方法功能说明示例split(String regex)按正则拆分默认全拆分a,b,c.split(,) → [a,b,c]split(String regex, int limit)限制拆分次数a,b,c.split(,,2) → [a,b,c]注意拆分特殊字符如.、|需转义a.b.c.split(\\.)。五、字符串替换 / 修改不可变返回新串String 是不可变对象所有修改方法均返回新字符串原字符串不变。方法功能说明示例replace(char old, char new)替换所有指定字符hello.replace(l,x) → hexxoreplace(CharSequence old, CharSequence new)替换所有指定子串hello.replace(ll,xx) → hexxoreplaceFirst(String regex, String replacement)替换首个匹配的正则子串a,b,c.replaceFirst(,,-) → a-b,creplaceAll(String regex, String replacement)替换所有匹配的正则子串a1b2c.replaceAll(\\d,*) → a*b*ctrim()去除首尾空格不含换行 / 制表符 hello .trim() → hellostrip()Java 11去除首尾所有空白字符含换行 / 制表符 \nhello\t.strip() → hello六、字符串转换大小写、数组、编码1. 大小写转换StringsHello;Stringuppers.toUpperCase();// HELLOStringlowers.toLowerCase();// hello2. 转字符数组 / 字节数组char[]charArrhello.toCharArray();// [h,e,l,l,o]byte[]byteArrhello.getBytes();// 按默认编码转字节数组byte[]byteArrUtf8hello.getBytes(StandardCharsets.UTF_8);// 指定UTF-8编码3. 静态转换方法其他类型转字符串Strings1String.valueOf(123);// 数字转字符串123Strings2String.valueOf(true);// 布尔值转字符串trueStrings3String.valueOf(newchar[]{a,b});// 字符数组转字符串ab七、字符串拼接高效选择1. 基础拼接少量拼接Stringshelloworld;// 编译期优化等价于helloworldStrings2hello123;// 自动转字符串hello1232. 高效拼接大量拼接频繁拼接用StringBuilder/StringBuffer前者非线程安全后者线程安全StringBuildersbnewStringBuilder();sb.append(hello).append(world).append(123);Stringressb.toString();// helloworld123八、其他常用方法方法功能说明示例concat(String str)拼接字符串等价于 极少用hello.concat(world) → helloworldtoCharArray()转为字符数组abc.toCharArray() → [a,b,c]format(String format, Object... args)格式化字符串String.format(name:%s,age:%d,Tom,18) → name:Tom,age:18九、核心避坑点不可变性所有修改方法如replace、substring均返回新串原串不变常量池复用直接赋值String s abc复用常量池new String(abc)创建新对象空指针风险调用null字符串的方法如null.length()会抛NullPointerException性能优化大批量拼接用StringBuilder避免频繁创建 String 对象。十、高频示例1. 校验字符串是否为纯数字publicstaticbooleanisAllDigit(Strings){if(snull||s.isEmpty())returnfalse;for(charch:s.toCharArray()){if(!Character.isDigit(ch))returnfalse;}returntrue;}2. 反转字符串publicstaticStringreverse(Strings){returnnewStringBuilder(s).reverse().toString();}3. 去除字符串中所有空格publicstaticStringremoveAllSpace(Strings){returns.replaceAll(\\s,);}以上是 String 最常用的语法覆盖开发中 90% 以上的字符串操作场景核心记住不可变性和方法返回新串两个关键点。