ICode9

精准搜索请尝试: 精确搜索
首页 > 编程语言> 文章详细

Java学习笔记:字符、字符串、操纵字符串及比较字符串

2022-08-01 15:03:22  阅读:114  来源: 互联网

标签:字符 Java String 对象 StringBuffer 笔记 字符串 public


  

#.字符 $.保存一个字符的时候使用char public abstract class YXQ {   public abstract void sout();   public static void main(String[] args) { char c1 = 'a'; char c2 = '1';//字符1,而非数字1 char c3 = '中';//汉字字符 } } $.char对应的封装类Character #.字符串String详解 $.创建字符串
    • 字符串即字符的组合,在Java中,字符串是一个类,所以我们见到的字符串都是对象 
    • 常见创建字符串手段: 
      • 1. 每当有一个字面值出现的时候,虚拟机就会创建一个字符串 
      • 2. 调用String的构造方法创建一个字符串对象 
      • 3. 通过+加号进行字符串拼接也会创建新的字符串对象 
$.immutable不可改变的
    • 比如创建了一个字符串对象
    • String garen ="盖伦";
    • 不可改变的具体含义是指:
      • 不能增加长度
      • 不能减少长度
      • 不能插入字符
      • 不能删除字符
      • 不能修改字符
    • 一旦创建好这个字符串,里面的内容 永远 不能改变
    • String 的表现就像是一个常量
$.字符串的常用方法
  1. 字符串长度:length方法返回当前字符串的长度
  2. 获取字符:charAt(int index)获取指定位置的字符
  3. 获取对应的字符数组:toCharArray()获取对应的字符数组
  4. 截取子字符串:subString 截取子字符串
  5. 分隔:split 根据分隔符进行分隔
  6. 去掉首尾空格: trim 去掉首尾空格
  7. 大小写:toLowerCase 全部变成小写
toUpperCase 全部变成大写
  1. 定位:indexOf 判断字符或者子字符串出现的位置
contains 是否包含子字符串
  1. 替换:replaceAll 替换所有的
replaceFirst 只替换第一个 $.比较字符串
  • 是否是同一个对象
    • str1和str2的内容一定是一样的! 
    • 但是,并不是同一个字符串对象
public class YXQ {   public static void main(String[] args) { String str1 = "the light"; String str2 = "the light"; String str3 = new String(str1); String str4 = new String(str1); //==用于判断是否是同一个字符串对象 System.out.println( str1 == str4); }}
  • 内容是否相同
    • 使用equals进行字符串内容的比较,必须大小写一致 
    • equalsIgnoreCase,忽略大小写判断内容是否一致
  • 是否以子字符串开始或者结束
    • startsWith  //以...开始
    • endsWith   //以...结束

 

#.String String是不可变对象,即对象一旦生成,就不能被更改。对String对象的改变会引发新的String对象的生成。   #.StringBuffer StringBuffer是可变长的字符串
  • 追加 删除 插入 反转
    • append  追加 
    • delete    删除 
    • insert     插入 
    • reverse   反转
StrinhBuffer:每次都对对象本身进行操作,而不是生成新的对象。所以在字符串内容不断改变的情况,建议使用StringBuffer。 String对象的字符串拼接其实是被JVM解释成了StringBuffer对象的拼接,所以这些时候String对象的速度并不会比StringBuffer慢。 public class YXQ { public static void main(String[] args) { String a ="there is a "+"simple"+"test"; StringBuffer b = new StringBuffer("there is a ").append("simple").append("test"); }} 这是因为,在JVM眼里:String S1 = “This is only a” + “ simple” + “ test”;就是String S1 = “This is only a simple test”;   #.StringBuild StringBuild是JDK1.5新增加的一个类,与StringBuffer具有相同的操作。区别在于:StringBuffer是线程安全的类。StringBuild不是线程安全的类,在单线程中性能要比StringBuffrer高。 描述HashTable和HashMap区别一样,就是因为HashTable支持线程同步、保证线程安全而导致的性能下降。   HashTable是线程安全的,很多方法都是synchronized方法。   HashMap不是线程安全的,但在单线程程序中的性能比HashTable要高。  

 

标签:字符,Java,String,对象,StringBuffer,笔记,字符串,public
来源: https://www.cnblogs.com/kxdwanp/p/16540284.html

本站声明: 1. iCode9 技术分享网(下文简称本站)提供的所有内容,仅供技术学习、探讨和分享;
2. 关于本站的所有留言、评论、转载及引用,纯属内容发起人的个人观点,与本站观点和立场无关;
3. 关于本站的所有言论和文字,纯属内容发起人的个人观点,与本站观点和立场无关;
4. 本站文章均是网友提供,不完全保证技术分享内容的完整性、准确性、时效性、风险性和版权归属;如您发现该文章侵犯了您的权益,可联系我们第一时间进行删除;
5. 本站为非盈利性的个人网站,所有内容不会用来进行牟利,也不会利用任何形式的广告来间接获益,纯粹是为了广大技术爱好者提供技术内容和技术思想的分享性交流网站。

专注分享技术,共同学习,共同进步。侵权联系[81616952@qq.com]

Copyright (C)ICode9.com, All Rights Reserved.

ICode9版权所有