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

品牌网站建设堅持大蝌蚪网站验证码 出不来

品牌网站建设堅持大蝌蚪,网站验证码 出不来,网站管理密码,wordpress 如何维护7. java字符串 7.1 API 介绍:应用程序编程接口。在 Java 中,API 指的是 JDK 提供的各种功能类,这些类把底层实现封装好了,我们不用关心内部怎么写的,直接用就行 用 API 帮助文档步骤:以查Random类为例 打…

7. java字符串

7.1 API

  • 介绍:应用程序编程接口。在 Java 中,API 指的是 JDK 提供的各种功能类,这些类把底层实现封装好了,我们不用关心内部怎么写的,直接用就行

  • 用 API 帮助文档步骤:以查Random类为例

    • 打开帮助文档,找到索引输入框

    • 输入 “Random”,按回车

    • 看类在哪个包(java.util包,用的时候要导包)

    • 看类的描述(知道它是生成随机数的)

    • 看构造方法(比如new Random()创建对象)

    • 看成员方法(比如nextInt()生成整数随机数)

  • 例子:

      import java.util.Random;public class APIDemo {public static void main(String[] args) {Random r = new Random(); // 创建Random对象int num = r.nextInt(10); // 生成0-9的随机数System.out.println("随机数:" + num);}}

7.2 String

  • 介绍:String 类代表字符串,Java 里所有双引号括起来的都是 String 对象

  • String 类的特点:

    • 字符串不可变:创建后内容不能改比如String s = "a"; s = "b";,其实是重新创建了 “b” 对象,“a” 还在内存里,只是 s 不再指向它

    • 字符串可共享:如果内容相同,只会存一份比如String s1 = "abc"; String s2 = "abc";,s1 和 s2 指向同一个 “abc” 对象

    • 底层是字节数组:表面像字符数组char[],实际存的是byte[],存的是字符的 ASCII 码值

  • String 类的构造方法

    方法名说明
    public String()创建空字符串,如new String()结果是 “”
    public String(char[] chs)用字符数组创建字符串,如char[] ch = {‘a’,‘b’}; new String(ch)结果是 “ab”
    public String(byte[] bys)用字节数组创建字符串,如byte[] b = {97,98}; new String(b)结果是 “ab”(97 是 ‘a’ 的 ASCII 码)
    String s = “abc”;直接赋值创建,最常用,如String s = “hello”;
  • 例子:

      public class StringDemo {public static void main(String[] args) {// 空字符串String s1 = new String();System.out.println("s1长度:" + s1.length()); // 0// 字符数组创建char[] ch = {'h', 'e', 'l'};String s2 = new String(ch);System.out.println("s2:" + s2); // hel// 字节数组创建byte[] b = {100, 101}; // 'd'和'e'的ASCII码String s3 = new String(b);System.out.println("s3:" + s3); // de// 直接赋值String s4 = "world";System.out.println("s4:" + s4); // world}}
  • 创建字符串对象两种方式的区别:

    • 构造方法(new):每次new都会在堆里新建对象,地址不同比如String s1 = new String("a"); String s2 = new String("a");,s1 和 s2 地址不同。

    • 直接赋值(“”):内容相同的字符串只存一份在字符串常量池,地址相同比如String s1 = "a"; String s2 = "a";,s1 和 s2 指向同一个 “a”

  • 字符串的比较:

    • == 号:

      • 基本数据类型:比数值,如int a=1; int b=1; a==btrue

      • 引用数据类型(如 String):比地址值,如new String("a") == new String("a")false,因为地址不同

    • equals 方法:专门比字符串内容,忽略地址,区分大小写。如"a".equals("A")false"a".equals("a")true

  • 例子:

      public class StringCompareDemo {public static void main(String[] args) {String s1 = new String("abc");String s2 = new String("abc");String s3 = "abc";String s4 = "abc";// ==比较地址System.out.println(s1 == s2); // false(new出来的地址不同)System.out.println(s1 == s3); // false(一个在堆,一个在常量池)System.out.println(s3 == s4); // true(都在常量池,地址相同)// equals比较内容System.out.println(s1.equals(s2)); // true(内容都是abc)System.out.println(s3.equals("abc")); // true}}
  • 字符串常用方法:

    方法名说明
    length()求字符串长度,如"abc".length()是 3
    charAt(int index)取指定索引的字符,索引从 0 开始,如"abc".charAt(1)是 ‘b’
    substring(int begin, int end)截取子字符串,含 begin,不含 end,如"abcde".substring(1,3)是 “bc”
    replace(CharSequence target, CharSequence replacement)替换字符串,如"abc".replace(“a”, “x”)是 “xbc”
    split(String regex)按规则分割字符串,返回字符串数组,如"a,b,c".split(“,”)得到[“a”,“b”,“c”]
  • 代码验证(替换和分割):

      public class StringMethodDemo {public static void main(String[] args) {// 替换敏感词String str = "你好TMD,这是GDX";String newStr = str.replace("TMD", "***").replace("GDX", "***");System.out.println(newStr); // 你好***,这是***// 分割手机号String phone = "138-1234-5678";String[] arr = phone.split("-");for (String s : arr) {System.out.println(s); // 138  1234  5678}}}

7.3 StringBuilder

  • 介绍:一个可变的字符串容器,专门用来高效拼接和反转字符串。比如拼接多个字符串时,用它比 String 效率高很多,因为 String 每次拼接都会生成新对象,而它直接在原有容器里改

  • 基本用法:

    • 创建对象:

      • StringBuilder sb = new StringBuilder(); 空容器

      • StringBuilder sb = new StringBuilder("初始内容"); 带初始值,如new StringBuilder("abc")

    • 常用方法:

      • append(内容):添加内容,支持各种类型(字符串、数字、布尔等),如sb.append("x").append(123)

      • reverse():反转字符串,如sb.reverse()把 “abc” 变成 “cba”

      • toString():转成 String 对象,如String str = sb.toString();

  • 代码验证(拼接和反转):

      public class StringBuilderDemo {public static void main(String[] args) {// 拼接字符串StringBuilder sb = new StringBuilder();sb.append("Hello").append(" ").append("World");System.out.println(sb); // Hello World// 反转字符串sb.reverse();System.out.println(sb); // dlroW olleH// 转成StringString str = sb.toString();System.out.println("转成String:" + str); // dlroW olleH}}
  • 链式编程:方法可以连续调用,比如sb.append("a").append("b").reverse();,代码更简洁

  • 例子:

      String result = new StringBuilder().append("开始").append("拼接").append("多个").append("内容").reverse() // 反转整个字符串.toString();System.out.println(result); // 容内个多接拼始开

7.4 StringJoiner

  • 介绍:和 StringBuilder 类似,也是可变字符串容器,但更适合按固定格式拼接字符串,比如用指定分隔符连接多个元素,或者添加首尾符号

  • 基本用法:

    • 创建对象并指定分隔符StringJoiner sj = new StringJoiner("分隔符");

      new StringJoiner(","),元素用 “,” 分隔

    • 带首尾符号的创建StringJoiner sj = new StringJoiner("分隔符","前缀","后缀");

      new StringJoiner(",", "[", "]"),结果像[a, b, c]

    • 添加元素:用add("元素")添加,如sj.add("a").add("b")

  • 代码验证:

      import java.util.StringJoiner;public class StringJoinerDemo {public static void main(String[] args) {// 普通用法(用“, ”分隔)StringJoiner sj1 = new StringJoiner(", ");sj1.add("苹果").add("香蕉").add("橘子");System.out.println(sj1); // 苹果, 香蕉, 橘子// 带首尾符号([ ]包裹,用“, ”分隔)StringJoiner sj2 = new StringJoiner(", ", "[", "]");sj2.add("周一").add("周二").add("周三");System.out.println(sj2); // [周一, 周二, 周三]// 转成StringString str = sj2.toString();System.out.println("转成String:" + str); // [周一, 周二, 周三]}}

7.5 字符串原理

  • 字符串存储位置:

    • 直接赋值(如String s = "abc";:“abc” 存在字符串常量池(JVM 的一块特殊内存区域),如果常量池里已有 “abc”,s 直接指向它,不会新建

    • new 创建(如String s = new String("abc");

      • 先检查常量池有没有 “abc”,没有就先创建到常量池

      • 然后在堆内存里新建一个 String 对象,指向常量池的 “abc”

      • 所以s1 = new String("a"); s2 = new String("a");时,常量池有一个 “a”,堆里有两个 String 对象,都指向常量池的 “a”

  • == 和 equals 的区别总结:

    场景==equals
    基本数据类型(如 int)比数值是否相等不能用(基本类型没有 equals 方法)
    引用数据类型(如 String)比对象地址是否相同比对象内容是否相同(String 重写了 equals 方法)
  • 例子:

      public class StringMemoryDemo {public static void main(String[] args) {String s1 = "abc"; // 常量池创建“abc”String s2 = "abc"; // s2直接指向常量池的“abc”,地址相同System.out.println(s1 == s2); // true(地址相同)String s3 = new String("abc"); // 堆里新建对象,指向常量池的“abc”String s4 = new String("abc"); // 堆里又新建对象,指向同一个“abc”System.out.println(s3 == s4); // false(堆里地址不同)System.out.println(s3.equals(s4)); // true(内容都是“abc”)}}
  • 为什么 StringBuilder 拼接效率高

    • String 拼接时会生成新对象,比如s = s + "a",每次拼接都要创建新的 String 对象,效率低

    • StringBuilder 直接在内部数组里操作,不会频繁创建新对象,拼接效率高很多,尤其适合大量拼接的场景(如循环里拼接)


文章转载自:

http://QCmu6Doy.fjmfq.cn
http://rOG6FgTY.fjmfq.cn
http://gvcKBRmn.fjmfq.cn
http://MK8BkmZt.fjmfq.cn
http://dF8kZNUZ.fjmfq.cn
http://mhAy5gK4.fjmfq.cn
http://nn9tZBl8.fjmfq.cn
http://n3E6bAF7.fjmfq.cn
http://UZ8N00yl.fjmfq.cn
http://0hKP0Mkn.fjmfq.cn
http://TsxwyoCw.fjmfq.cn
http://VrzOVA0H.fjmfq.cn
http://zoDYP6tM.fjmfq.cn
http://M69FE69T.fjmfq.cn
http://o9kXpalY.fjmfq.cn
http://tzlFdt62.fjmfq.cn
http://nitMkOKv.fjmfq.cn
http://uTuKmpI5.fjmfq.cn
http://bdSQusDe.fjmfq.cn
http://QI0pfBo8.fjmfq.cn
http://La9utNoB.fjmfq.cn
http://CGpuLuMZ.fjmfq.cn
http://8bpKf53C.fjmfq.cn
http://emzZkHHb.fjmfq.cn
http://RHxdlIBH.fjmfq.cn
http://Qrb6Wiy1.fjmfq.cn
http://WU8YDkhV.fjmfq.cn
http://p7IqQgss.fjmfq.cn
http://8eAB8f3p.fjmfq.cn
http://HoRCU8fz.fjmfq.cn
http://www.dtcms.com/wzjs/777561.html

相关文章:

  • 番禺手机网站制作推广中国建设劳动学会网站
  • 前端网站做多语言什么网站权威评价搜索引擎优劣
  • 论坛推广站长工具seo综合查询推广
  • 交互做的不好的网站在网上做试卷的网站
  • 网站开发项目答辩ppt网站制作流程是什么
  • 承德网站建设开发国外怎么做直播网站
  • 长沙一键建站系统白银价格
  • 甘肃网站建设方案服务至上久久建筑资料网
  • 作风建设提升年活动网站网站工程专业是什么
  • 大二学生做网站难吗有没有专门做尾料回收的网站
  • 湘潭做网站问下磐石网络ev123建站
  • 免费的微网站哪个好网站建设126
  • WordPress 主页缩略图链接列表网做优化网站怎么样
  • 网站如何不让百度抓取网站seo排名优化工具在线
  • 高安网站找工作做面点事海外域名可以在国内访问吗
  • 高密做网站医疗器械公司排名
  • 做网站时可以切换语言的Wordpress如何接入visa支付
  • wordpress图片站阿里云网站建设 部署与发布笔记
  • 绍兴seo外包seo站内优化包括
  • 怎么做后台网站一键更新北京网络运营推广团队
  • 苏州网站建设sz sogou网站过场动画
  • 洛阳建站哪家好wordpress tag 别名
  • 微信开发网站开发未来前景西安网站制作公司有哪家
  • 展示型网站建设的标准河南项目备案信息网
  • 免费的国际网站建设网站静态页面模板
  • js网站下拉置顶代码苏州电商关键词优化
  • 从电子商务网站f型眼球轨迹分析其网站布局做特产的网站的分析
  • 医院网站 功能无极招聘信息网
  • 网站建设平台合同公司网站域名过期
  • 去除 做网站就用建站之星免费ppt资源网站