当前位置: 首页 > news >正文

厦门市建设局查询保障摇号网站首页做房产网站长

厦门市建设局查询保障摇号网站首页,做房产网站长,免费特效模板下载,免费空间建站网站推荐Java从入门到“放弃”#xff08;精通#xff09;之旅#x1f680;——String类⑩ 前言 在Java编程中#xff0c;String类是最常用也是最重要的类之一。无论是日常开发还是面试#xff0c;对String类的深入理解都是必不可少的。 1. String类的重要性 在C语言中#xf…Java从入门到“放弃”精通之旅——String类⑩ 前言 在Java编程中String类是最常用也是最重要的类之一。无论是日常开发还是面试对String类的深入理解都是必不可少的。 1. String类的重要性 在C语言中字符串只能使用字符数组或字符指针表示操作字符串需要依赖标准库函数。这种方式将数据和操作分离不符合面向对象思想。Java专门提供了String类来解决这个问题。 String类在开发中无处不在例如 字符串转数字字符串拼接数据校验等 面试中也经常被问到String相关的问题如String、StringBuffer和StringBuilder的区别等。 2. 常用方法 2.1 字符串构造 String类提供了多种构造方式常用的有三种 public static void main(String[] args) {// 使用常量串构造String s1 hello bit;System.out.println(s1);// 直接new String对象String s2 new String(hello bit);System.out.println(s2);// 使用字符数组进行构造char[] array {h,e,l,l,o, ,b,i,t};String s3 new String(array);System.out.println(s3); }注意String是引用类型并不是直接保存字符串内容而是内部通过字符数组存储字符串内容。 代码示例 public static void main(String[] args) {// s1和s2引用的是不同对象 s1和s3引用的是同一对象String s1 new String(hello);String s2 new String(world);String s3 s1;System.out.println(s1.length()); // 获取字符串长度---输出5System.out.println(s1.isEmpty()); // 如果字符串长度为0返回true否则返回false }2.2 String对象的比较 Java提供了4种字符串比较方式 比较引用地址 public static void main(String[] args) {String s1 new String(hello);String s2 new String(hello);String s3 new String(world);String s4 s1;System.out.println(s1 s2); // falseSystem.out.println(s2 s3); // falseSystem.out.println(s1 s4); // true }equals()方法按字典序比较 public static void main(String[] args) {String s1 new String(hello);String s2 new String(hello);String s3 new String(Hello);System.out.println(s1.equals(s2)); // trueSystem.out.println(s1.equals(s3)); // false }compareTo()方法按字典序比较并返回差值 public static void main(String[] args) {String s1 new String(abc);String s2 new String(ac);String s3 new String(abc);String s4 new String(abcdef);System.out.println(s1.compareTo(s2)); // -1System.out.println(s1.compareTo(s3)); // 0System.out.println(s1.compareTo(s4)); // -3 }compareToIgnoreCase()方法忽略大小写的compareTo public static void main(String[] args) {String s1 new String(abc);String s2 new String(ac);String s3 new String(ABC);String s4 new String(abcdef);System.out.println(s1.compareToIgnoreCase(s2)); // -1System.out.println(s1.compareToIgnoreCase(s3)); // 0System.out.println(s1.compareToIgnoreCase(s4)); // -3 }2.3 字符串查找 常用查找方法 方法功能char charAt(int index)返回index位置上字符如果index为负数或者越界抛出IndexOutOfBoundsException异常int indexOf(int ch)返回ch第一次出现的位置没有返回-1int indexOf(int ch, int fromIndex)从fromIndex位置开始找ch第一次出现的位置没有返回-1int indexOf(String str)返回str第一次出现的位置没有返回-1int indexOf(String str, int fromIndex)从fromIndex位置开始找str第一次出现的位置没有返回-1int lastIndexOf(int ch)从后往前找返回ch第一次出现的位置没有返回-1int lastIndexOf(int ch, int fromIndex)从fromIndex位置开始找从后往前找ch第一次出现的位置没有返回-1int lastIndexOf(String str)从后往前找返回str第一次出现的位置没有返回-1int lastIndexOf(String str, int fromIndex)从fromIndex位置开始找从后往前找str第一次出现的位置没有返回-1 public static void main(String[] args) {String s aaabbbcccaaabbbccc;System.out.println(s.charAt(3)); // bSystem.out.println(s.indexOf(c)); // 6System.out.println(s.lastIndexOf(c)); // 17 }2.4 字符串转化 数值和字符串互转 public static void main(String[] args) {// 数字转字符串String s1 String.valueOf(1234);String s2 String.valueOf(12.34);// 字符串转数字int data1 Integer.parseInt(1234);double data2 Double.parseDouble(12.34); }大小写转换 public static void main(String[] args) {String s1 hello;String s2 HELLO;System.out.println(s1.toUpperCase()); // HELLOSystem.out.println(s2.toLowerCase()); // hello }字符串与数组互转 public static void main(String[] args) {String s hello;// 字符串转数组char[] ch s.toCharArray();// 数组转字符串String s2 new String(ch); }2.5 字符串替换 public static void main(String[] args) {String str helloworld;System.out.println(str.replaceAll(l, _)); // he__owor_dSystem.out.println(str.replaceFirst(l, _)); // he_loworld }注意字符串是不可变对象替换操作会创建新对象。 2.6 字符串拆分 public static void main(String[] args) {// 基本拆分String str hello world hello bit;String[] result str.split( );// 部分拆分String[] result2 str.split( , 2);// 拆分IP地址String ip 192.168.1.1;String[] ipParts ip.split(\\.); }2.7 字符串截取 public static void main(String[] args) {String str helloworld;System.out.println(str.substring(5)); // worldSystem.out.println(str.substring(0, 5)); // hello }2.8 其他操作方法 public static void main(String[] args) {// 去除首尾空格String str hello world ;System.out.println(str.trim());// 大小写转换String mixed Hello%$$%#$%World;System.out.println(mixed.toUpperCase());System.out.println(mixed.toLowerCase()); }3. 字符串的不可变性 String类被设计为不可变类主要原因有 方便实现字符串常量池线程安全便于缓存hash code 注意String不可变不是因为final修饰而是因为其设计如此。 public final class String {private final char value[];// ... }4. 字符串修改 由于String不可变频繁修改会产生大量临时对象效率低下 public static void main(String[] args) {// 不推荐的写法String s ;for(int i 0; i 10000; i){s i;}// 推荐使用StringBuilderStringBuilder sb new StringBuilder();for(int i 0; i 10000; i){sb.append(i);} }5. StringBuilder和StringBuffer 5.1 StringBuilder介绍 StringBuilder是可变的字符串类方法表 方法说明StringBuffer append(String str)在尾部追加相当于String的可以追加boolean、char、char[]、double、float、int、long、Object、String、StringBuffer的变量char charAt(int index)获取index位置的字符int length()获取字符串的长度int capacity()获取底层保存字符串空间总的大小void ensureCapacity(int minimumCapacity)扩容void setCharAt(int index, char ch)将index位置的字符设置为chint indexOf(String str)返回str第一次出现的位置int indexOf(String str, int fromIndex)从fromIndex位置开始查找str第一次出现的位置int lastIndexOf(String str)返回最后一次出现str的位置int lastIndexOf(String str, int fromIndex)从fromIndex位置开始找str最后一次出现的位置StringBuffer insert(int offset, String str)在offset位置插入八种基类类型 String类型 Object类型数据StringBuffer deleteCharAt(int index)删除index位置字符StringBuffer delete(int start, int end)删除[start, end)区间内的字符StringBuffer replace(int start, int end, String str)将[start, end)位置的字符替换为strString substring(int start)从start开始一直到末尾的字符以String的方式返回String substring(int start, int end)将[start, end)范围内的字符以String的方式返回StringBuffer reverse()反转字符串String toString()将所有字符按照String的方式返回 常用方法部分代码示例 public static void main(String[] args) {StringBuilder sb new StringBuilder(hello);sb.append( world); // 追加sb.insert(5, ,); // 插入sb.delete(5, 6); // 删除sb.reverse(); // 反转String result sb.toString(); // 转为String }5.2 面试题 String、StringBuffer、StringBuilder的区别 String不可变后两者可变StringBuffer线程安全StringBuilder非线程安全StringBuilder性能更高 创建了多少个String对象 String str new String(ab); // 2个常量池1个堆1个 String str new String(a) new String(b); // 6个6. String类OJ题解 6.1 第一个只出现一次的字符 class Solution {public int firstUniqChar(String s) {int[] count new int[256];for(int i 0; i s.length(); i){count[s.charAt(i)];}for(int i 0; i s.length(); i){if(1 count[s.charAt(i)]){return i;}}return -1;} }6.2 最后一个单词的长度 import java.util.Scanner;public class Main {public static void main(String[] args){Scanner sc new Scanner(System.in);while(sc.hasNext()){String s sc.nextLine();int len s.substring(s.lastIndexOf( )1).length();System.out.println(len);}sc.close();} }6.3 检测字符串是否为回文 class Solution {public static boolean isValidChar(char ch){return (ch a ch z) || (ch 0 ch 9);}public boolean isPalindrome(String s) {s s.toLowerCase();int left 0, right s.length()-1;while(left right){while(left right !isValidChar(s.charAt(left))) left;while(left right !isValidChar(s.charAt(right))) right--;if(s.charAt(left) ! s.charAt(right)) return false;left;right--;}return true;} }总结 String类是Java中最重要的类之一理解其不可变特性、掌握常用方法以及了解StringBuilder/StringBuffer的区别对于编写高效Java程序至关重要。希望本文能帮助大家全面掌握String类的使用 JavaSE往期专栏 Java从入门到“放弃”精通之旅——启航①Java从入门到“放弃”精通之旅——数据类型与变量②Java从入门到“放弃”精通之旅——运算符③Java从入门到“放弃”精通之旅——程序逻辑控制④Java从入门到“放弃”精通之旅——方法的使用⑤Java从入门到“放弃”精通之旅——数组的定义与使用⑥Java从入门到“放弃”精通之旅——类和对象全面解析⑦Java从入门到“放弃”精通之旅——继承与多态⑧Java从入门到“放弃”精通之旅——抽象类和接口⑨
http://www.zqtcl.cn/news/529854/

相关文章:

  • 做羊水亲子鉴定网站网络推广是啥
  • 怎样解析网站域名用哪个网站做首页比较好
  • 设计网站页面设计wordpress样式错乱
  • 静态网页模板免费网站wordpress悬浮按钮
  • 怎么制作学校网站大淘客网站代码
  • 如何做好一个网站wordpress 修改邮箱设置
  • 网站项目方案生态建设研究所网站
  • 用织梦做视频网站wordpress文章不能分段
  • 彩票网站开发. 极云邮箱类网站模板
  • 网站代运营协议网站 文件服务器
  • 专业网站设计公司有哪些绿色营销案例100例
  • 网站建设买了域名山东省作风建设网站
  • 留学中介网站建设方案设计企业品牌商标
  • 会展相关网站建设情况seo的基本步骤是什么
  • 太原网站建设鸣蝉公司免费网页制作网站建设
  • 中山专业网站建设网站开发基础知识简述
  • 包头索易网站建设中国建设银行网站余额查询
  • 哪家公司做网站开发做得比较好佛山商城网站制作
  • 可以做淘宝推广的网站优化网页设计是什么
  • 邢台手机网站制作优秀网站建设哪家好
  • 网站托管运营所需资料长春专用网站建设
  • 北京网站建设招聘江苏住房和城乡建设局网站
  • 如何让订阅号菜单做微网站哪家网站做的好
  • 北京建站方案北京seo主管
  • 网站平台建设费用的会计核算凡科教育小程序怎么样
  • 网站配置文件在哪里sns网站需求
  • 网站运营优化建议英国网站域名
  • 网站开发洲际企业网站模板论坛
  • 如何建外贸网站软件工程专业是干什么的
  • 衣联网和一起做网站 哪家强网站seo方案建设目标