美文网首页
java se 字符串

java se 字符串

作者: 起名字真难难难 | 来源:发表于2020-02-03 15:58 被阅读0次

一、字符串特点

1、是常量,内容永不可变,创建之后不可更改
2、可共享使用,节省内存
3、效果上相当于char[]字符数组,底层原理是字节数组byte[]

二、创建字符串的3+1种方式

三种构造方法

1、创建空白字符串,不含任何内容

public String();
String str1=new String();
str1="于松江";
System.out.println("第一个字符串是"+str1);

2、根据字符数组,创建对应字符串

public String (char[] array);
char[] charArray={'1','2','3'};
String str2=new String(charArray);
System.out.println("第二个字符串是"+str2);

3、根据字节数组创建相应字符串

public String (byte[] array);
byte[] byteArray={97,98,99};
String str3=new String(byteArray);
System.out.println("第三个字符串是"+str3);
一种直接创建(不用new)

直接写上双引号就是字符串

String str4="程泽琪";
System.out.println("第四个字符串是"+str4);

三、字符串的常量池

程序当中直接写上双引号的字符串,就在字符串常量池中,new出来的不在。
基本类型 ==:数值的比较
引用类型 ==:地址值的比较

四、字符串的常用方法

内容比较方法:
1、

public boolean equals(Oblect obj);
String str1 = "abc";
        String str2 = "abc";
        //创建一个字符串型的数组 把字符串传入新数组中
        char[] charArray = {'a', 'b', 'c'};
        String str4=new String(charArray);
        System.out.println(str1.equals(str2));
        System.out.println(str4.equals(str1));
        System.out.println(str2.equals(str4));
        System.out.println(str1.equals(str4));

结果都是true

(1)参数可以是任何对象,都可以用obj接收,内容相同返回true。
(2)equals具有对称性,a.equals(b)与b.equals(a)具有一样的效果
(3)推荐"abc".equals(str)<不推荐str.equals("abc")
若双引号里是空白,表示null,没有地址会发生空指针异常
2、

public boolean equalsIgnoreCase();

忽略大小写

 str1.equalsIgnoreCase(str3);

五、字符串的获取方法

1、获取字符出串字符的个数,拿到字符串长度

public int lenght();
String str1="hsuxalksacjdhbjshfvb";
int lenght=str1.length();
System.out.println("字符串的长度是"+lenght);

2、将当前字符串和参数字符串进行拼接,返回出新的字符串

public String concat(String str);
String str2="ab";
String str3="cd";
String str4=str2.concat(str3);

3、获取指定索引位置的单个字符

public char charAt(int index);
char ch=str1.charAt(5);

4、查找小字符串首次出现的位置,若没有返回-1

public int indexOf(String str);
int index=str1.indexOf("a");

六、字符串的截取方法

1、从参数位置到字符串开始

public String subString(int index);
String str1=str.substring(3);

2、

public String subString(int begin,int end);
String str2=str.substring(2,5);

七、与转换相关的方法

1、字符串拆分成字符数组作为返回值

public char[] toCharArray();

注:遍历时用for循环!

String str1="hello";
char[] chars = str1.toCharArray();
for (int i = 0; i < chars.length; i++) {
System.out.println(chars[i]);
        }

2、获得字符串底层字节数组

public byte[] getBytes();
String str2="abc";
byte[] bytes = str2.getBytes();
for (int i = 0; i < bytes.length; i++) {
      System.out.println(bytes[i]);
        }

3、老字符串替换新字符串

public String replace(charSequence oldString,charSequence newString);
String str3="i love u";
String str4 = str3.replace("u", "于松江");

八、字符串的分割

按字符串规则,将字符串分割成若干部分

public String[] split(String regex)
String str1="aaa,bbb,ccc";
String[] str2 = str1.split(",");
for (int i = 0; i < str2.length; i++) {
     System.out.println(str2[i]);
        }

split是一个正则表达式
注:英文据点"."进行切分,必须写成"//."

String str3="aaa.bbb.ccc";
String[] str4 = str3.split("\\.");
for (int i = 0; i < str4.length; i++) {
            System.out.println(str4[i]);
        }

相关文章

网友评论

      本文标题:java se 字符串

      本文链接:https://www.haomeiwen.com/subject/lpuhxhtx.html