字符串 String

Posted damocless

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了字符串 String相关的知识,希望对你有一定的参考价值。

package test1;
/*
*java.lang.String 类代表字符串
* API中说,java程序中所有的字符串字面值(如“abc”)都作为此类的实例实现
* 其实就是说,程序当中,所有的双引号字符串,都是String类的对象(就算没有new,也照样是)
* string特点:
* 1,字符串的值是常量,不能被更改
* 2,正是因为字符串不可改变,所以字符串是可以共享使用的;
* 3字符串效果上相当于char【】字符数组,但是底层原理是byte【】字节数组。
* */
/*
* 创建字符串的3+1种方式
* 三种构造方法
* public String(),创建一个空白字符串,不含有任何内容,
* public String(char[] array),根据字符数组的内容,来创建对应的字符串
* public String(byte[] array),根据字节数组的内容,来创建对应的字符串
* 一种直接创建,
* String str=“sdsdf”;
*
* */
public class test1{
public static void main(String[] args)
{
// 使用空参数构造
String str1=new String();
System.out.println("第一个字符串:"+str1);
// 根据字符数组创建字符串
char[] charArray={‘A‘,‘B‘,‘C‘};
String str2=new String(charArray);
System.out.println("第二个字符串:"+str2);
// 根据字节数组创建字符串
byte[] byteArray={97,98,99};
String str3=new String(byteArray);
System.out.println("第三个字符串:"+str3);
}

}
字符串的常量池

技术图片

 

 

package test1;
/*
* 字符串常量池,程序当中直接写上的双引号字符串,就在字符串常量池中。
* 对于基本类型来说,==是进行数值的比较。
* 对于引用类型来说,==是进行地址值的比较
* */
public class test1{
public static void main(String[] args) {
String str1="abc";
String str2="abc";
char[] charArray={‘a‘,‘b‘,‘c‘};
String str3=new String(charArray);
System.out.println(str1==str2);//true
System.out.println(str1==str3);//false
System.out.println(str2==str3);//false
}
}
字符串的比较相关方法



package test1;
/*
* ==是进行对象的地址值,如果确实需要字符串的内容比较,可以使用两种方法:
* public boolean equals(object obj);参数可以是任何对象,只有参数时一个字符串并且内容相同的才会给true
* 否则返回值是false
* 注意事项:
* 1 任何对象都能使用Object进行接收
* 2 equals方法具有对称性,也就是a.equals(b)和b.equals(a)效果一样。
* 3 如果比较双方一对常量一个变量,推荐把常量字符串写在前面
* 推荐:"abc".equals(str); "不推荐":str.equals("abc");
*
* public boolean equalsIgnoreCase(String str);//忽略大小写,进行内容的比较。
*
* * */
public class test1{
public static void main(String[] args) {
String str1="Hallo";
String str2="Hallo";
char[] charArray={‘H‘,‘a‘,‘l‘,‘l‘,‘o‘};
String str3=new String(charArray);

System.out.println(str1.equals(str2));//true
System.out.println(str1.equals(str3));//true
System.out.println(str3.equals("Hallo"));//true
System.out.println("Hallo".equals(str1));//true

String str4="hallo";
System.out.println(str1.equals(str4));//false
System.out.println("###################");

String str5 = null ;
System.out.println("abc".equals(str5));//推荐 false
// System.out.println(str5.equals("abc"));//不推荐,报错,空指针异常NullPointerException
System.out.println("#########################");
String strA="Java";
String strB="java";
System.out.println(strA.equals(strB)); //false 严格区分大小写
System.out.println(strA.equalsIgnoreCase(strB)); //true 忽略大小写;

//注意,只有英文字母区分大小写,其他都不会忽略大小写。
System.out.println("abc一123".equalsIgnoreCase("abc壹123"));//false;

}




}


















以上是关于字符串 String的主要内容,如果未能解决你的问题,请参考以下文章

C++string中怎样从字符串里截取出字符

java string怎么截取字符串

string.find(查找获取字符串) string.gsub(查找替换字符串) string.sub(截取字符串)

如何判断string字符串的长度

C++ string 字符串类详解

二进制转换为string字符串?