/*
字符串:
一、概述:1.字符串在JAVA中,使用""表示2.java.lang.String类3.只要写""就是字符串对象。不需要new二、空参构造器new Sting();private final char value[];public String() {this.value = "".value;}
三、String类一个参数构造器:字节数组采用平台(操作系统)默认字符集解码数组--编码表GBKbyte[] = {};将字节数组转成字符串public String(byte bytes[]) {this(bytes, 0, bytes.length);}
四、String类两个参数构造器:指定一个编码表【I/O更新】五、String类三个参数构造器:字节数组,开始下标,获取几个
java.lang.String @Contract(pure = true)
public String(@NotNull byte[] bytes,int offset,int length)
六、String类一个参数构造器:字符数组
public String(char value[]) {this.value = Arrays.copyOf(value, value.length);}
七、String类三个参数构造器:字符数组,开始下标,获取几个public String(char value[], int offset, int count) {if (offset < 0) {throw new StringIndexOutOfBoundsException(offset);}if (count <= 0) {if (count < 0) {throw new StringIndexOutOfBoundsException(count);}if (offset <= value.length) {this.value = "".value;return;}}// Note: offset or count might be near -1>>>1.if (offset > value.length - count) {throw new StringIndexOutOfBoundsException(offset + count);}this.value = Arrays.copyOfRange(value, offset, offset+count);}
八、String类三个参数构造器:整数数组,开始下标,获取几个(基本不用)
九、    String类三个参数构造器:字符串(基本不用)
public String(String original) {this.value = original.value;this.hash = original.hash;}十、字符串一旦创建,就是常量,不能修改。
"abc"是对象---不能改变
s 是引用型变量
s 的指向对象可以改变十一、在堆中,如果
String s1 = new String('a','b','c');
String s2 = new String('a','b','c');
System.out.println(s1==s2);-------true但
String s3 = new String("abc");
String s4 = "abc";
System.out.println(s1==s2);-------Fals:创建对象不同String s5 = "efg";
System.out.println(s4==(s4+s5));---- f-------常量与变量相加,不知道结果,重新建立空间,比较的是内存地址
System.out.println(s4==("abc"+"def"));---- t------常量与常量相加,比较的是具体数值十二、比较方法equals():必须一模一样才叫相等,是继承Object类之后重写的比较数组中的每一个字符public boolean equals(Object anObject) {if (this == anObject) {return true;}if (anObject instanceof String) {String anotherString = (String)anObject;int n = value.length;if (n == anotherString.value.length) {char v1[] = value;char v2[] = anotherString.value;int i = 0;while (n-- != 0) {if (v1[i] != v2[i])return false;i++;}return true;}}return false;}
十三、比较字符串是否相等,忽略大小写:是StrinG自己的,非继承重写
boolean equalsIgnoreCase(String s)十四、判断一个字符串中是否包含另一个字符串public boolean contains(CharSequence s) {return indexOf(s.toString()) > -1;}
十五、判断字符串中是否包含空字符串public boolean isEmpty() {return value.length == 0;}
十六、判断字符串是不是以另一个字符串开头public boolean startsWith(String prefix) {return startsWith(prefix, 0);}public boolean startsWith(String prefix, int toffset) {char ta[] = value;int to = toffset;char pa[] = prefix.value;int po = 0;int pc = prefix.value.length;// Note: toffset might be near -1>>>1.if ((toffset < 0) || (toffset > value.length - pc)) {return false;}while (--pc >= 0) {if (ta[to++] != pa[po++]) {return false;}}return true;}判断字符串是不是以另一个字符串结尾public boolean endsWith(String suffix) {return startsWith(suffix, value.length - suffix.value.length);}*/

1.空指针异常

public class StringDome {public static void main(String[] args) {method_1();}public static void method_1() {String s1 = "abcde";String s2 = new String("abcde");String s3 = null;String s4 = "ABCDE";String s5 = "ab";String s6 = "";System.out.println(s1.equals(s2));//System.out.println(s3.equals(null));System.out.println(s1.equalsIgnoreCase(s4));System.out.println(s1.contains(s5));System.out.println(s6.isEmpty());System.out.println(s1.startsWith("a"));System.out.println(s1.endsWith("d"));}

(JAVA)String类之比较方法相关推荐

  1. Java String类的split方法简介

    Java String类的split方法简介 String的split()方法用于按传入的字符或字符串对String进行拆分,返回拆分之后的数组. 1.一般用法 用一般的字符,例如 @ 或 , 等符号 ...

  2. java String类常用的方法

    package Day0310.Demo02;public class StringTest02 {public static void main(String[] args) {System.out ...

  3. Java—String类的intern方法的学习

    对intern方法的学习来源于之前偶然看到的一篇博客:[请别再拿"String s = new String("xyz");创建了多少个String实例"来面试 ...

  4. Java String类的intern()方法

    该方法的作用是把字符串加载到常量池中(jdk1.6常量池位于方法区,jdk1.7以后常量池位于堆) 在jdk1.6中,该方法把字符串的值复制到常量区,然后返回常量区里这个字符串的值: 在jdk1.7里 ...

  5. Java——String类的substring()方法

    截取字符串,在java语言中的用法 1.  public String substring(int beginIndex) 返回一个新字符串,它是此字符串的一个子字符串.该子字符串始于指定索引处的字符 ...

  6. Java String类的replaceAll方法

    代码勇士真题: 给定一个字符串由a-z字母组成的字符串s,长度任意字母可任意组合. 要求编写函数找出s中不在a-m范围内的字母个数n,要求函数返回字符串格式为:n/s的长度 例如: s="a ...

  7. java的知识点15——String基础、String类和常量池、String类常用的方法、字符串相等的判断、组合模式

    String基础 1. String类又称作不可变字符序列. 2. String位于java.lang包中,Java程序默认导入java.lang包下的所有类. 3. Java字符串就是Unicode ...

  8. Java——String类的方法

    Java--String类的方法 String str1 = "abc" 与String str2 = new String("abc")有什么区别? 字符串常 ...

  9. Java中String类的concat方法___java的String字符串的concat()方法连接字符串和“+“连接字符串解释

    Java中String类的concat方法 在了解concat()之前,首先需要明确的是String的两点特殊性. 长度不可变 值不可变 这两点从源码中对String的声明可以体现: private ...

  10. java string类的方法_Java-String类的常用方法总结

    一.String类 String类在java.lang包中,java使用String类创建一个字符串变量,字符串变量属于对象.java把String类声明的final类,不能有类.String类对象创 ...

最新文章

  1. C# - 基于LinkLabel可动态生成多超链接信息的自定义控件
  2. inner join on, left join on, right join on要详细点的介绍?内连接,左外连接,右外连接。...
  3. 化浆池是什么东西_冷水滩酒店海鲜贝类池定制定做大型海鲜池
  4. linux的du和df命令,du和df命令都是Linux系统的重要工具
  5. “记录”是给世界做积极贡献的一种方式
  6. PostgreSQL11 data数据库目录迁移
  7. java sqlite 创建_关于Java:创建3个由sqlite数据库填充的微调器
  8. 没有理想的人不会伤心,不想做程序猿,没目标,不知道自己还能干嘛呢
  9. linux oracle11.2安装 ins-1010,ARCHLINUX下安装oracle11g
  10. ubuntu16 kickstart pxe 安装系统
  11. (笔记)Mysql命令create table:创建数据表
  12. 来自一个用户的体验-Alpha项目测试
  13. TAOCP-Reading-计算机程序设计艺术阅读-1-0
  14. 引入jackson-dataformat-xml的影响
  15. SpringBoot整合腾讯云COS
  16. 关于Python3爬虫抓取豆瓣电影的案例-利用正则表达式
  17. 完整会议议程:NGINX Sprint China 2022 年度线上大会
  18. 应用程序无法运行,不是有效的Win32位程序解决(新手向)
  19. MAC OS下设置bits/stdc++.h万能头文件
  20. Python 爬虫十六式 - 第七式:RE:用匹配来演绎编程的艺术

热门文章

  1. 第二十期:黄金三步法 | 汇报时,如何让老板快速抓住重点?
  2. 第十六期:简单的介绍一下大数据中最重要的MapReduce
  3. git报错:‘fatal:remote origin already exists‘怎么处理?附上git常用操作以及说明。
  4. python画正方体_python绘制立方体的方法
  5. [网络开发]同步与线程安全方案
  6. PHP闭包(Closure)初探(转载 http://my.oschina.net/melonol/blog/126694?p=2#comments)
  7. Java基础总结(一)
  8. jquery的鼠标移入移出事件hover、mouseenter、mouseleave、mouseover、mouseout
  9. Android 编码规范:(六)消除过期的对象引用
  10. 文件上传简介1---上传到指定的目录