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

萍乡网站建设哪家好哦室内设计公司排名前100

萍乡网站建设哪家好哦,室内设计公司排名前100,深圳网站建设者,河南网站推广优化多少钱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.pierceye.com/news/789601/

相关文章:

  • 邵阳建设银行网站是多少建设银行 企业
  • 网站开源系统网页制作与网站建设思维导图
  • 专门做前端项目的一些网站wordpress 朋友圈插件
  • 网站建设哪家专业网站开发费用怎么做账
  • 用dw怎么做网站首页wordpress 文章页面失败
  • 郑州网站制作专业乐云seowordpress it博客主题
  • 支付宝手机网站支付二维码怎么做网站 开发
  • 教育网站制作视频代理网址ag80hncom
  • 泰兴公司做网站建设制作外贸网站公司
  • 手机wap网站大全作品提示优化要删吗
  • 郑州网站建设技术支持云南澄江县建设局网站
  • wordpress建企业网站设置网站一级域名和二级域名
  • 云南省城乡与住房建设厅网站合肥网红打卡地
  • 用dw做的企业网站宁波seo优化费用
  • 网站制作开发建网站公司 蓝纤科技
  • 怎样到国外做合法网站法网站网站建设小组实验报告
  • DNF做钓鱼网站网站建设方案书编写
  • 提高网站粘性wordpress tag中文
  • 公司已有网站 如何自己做推广wordpress的音乐插件怎么用
  • 权威网站php wordpress 等
  • 建设网站企业公司中通建设计院第四分公司网站
  • 快站免费网站建设哪家好南宁市住房建设局网站
  • 学生做的网站成品roseonly企业网站优化
  • 台前网站建设电话百度账号注册申请
  • 政和县建设局网站公告征婚网站咋做
  • 做网站需要用到的语言注册公司需要多少钱保证金
  • 如何给别人做网站赚钱互联网广告营销方案
  • 上海专业做网站公司地址软文代写
  • 家居网站源码宁波专业建设网站建站公司
  • 成都网站建设 Vr功能 卓 公司网站后台管理系统怎么用