java基础(三)----字符串

一、字符与整数的联系——ASCII码

每一个常用的字符都对应一个-128~127的数字,,二者之间可以相互转化。注意负数目前暂时没有与之对应的字符。

public class Main {
    public static void main(String[] args) {

        char c = 'a';
        System.out.println((int)c);

        int a = 97;
        System.out.println((char)a);
    }
}

二、Srting类

1、初始化

String a = "Hello World!";
String b = "My name is ";
String x = b;   //储存到了相同的地址
String c = b + "syx";   //String类型可以通过加号拼接
String d = "My age is " + 18; //int在这里被隐式转化成String类型
String str = String.format("My age is %d",18);//格式化输出
String pi = "3.1415926";
double PI = Double.parseDouble(pi);//强制转化成double类型

2、String具有只读性,不能修改

public class Main {

    public static void changeChar(String str1) {
        str1 = "abc";
    }

    public static void main(String[] args) {
        String str = "1234";
        changeChar(str);
        System.out.println(str);
    }
}

上面例子说明我们str存的是“1234”对象的引用地址,然后我们调用changeChar方法,str会把引用地址传给str1,由于java中的String类是只读的,所以我们无法修改“1234”这个字符串对象的值。
str1=“abc”是重新创建了一个字符串,并把这个地址给str1,但是我们str还是指向“1234”的地址,所以输出还是1234。

3、访问String类型的字符

public class Main {

    public static void main(String[] args) {
        String str = "Roseanne Park";
        for(int i=0;i<str.length();i++) {
            System.out.print(str.charAt(i));//注意这里的charAt(i)
        }
    }
}

4、常用API

在这里插入图片描述
我们首先看一下split这个API

package org.syx;
import java.util.Scanner;
import java.util.Arrays;
public class Main {
    public static void main(String[] args) {
        String str = "Roseanne Park BlackPink";
        String[] str1 = str.split(" ");
        System.out.println(Arrays.toString(str1));
    }
}

去掉首尾的空白字符treim()

public class Main {
    public static void main(String[] args) {
        String str = "   Roseanne Park BlackPink    \n";
        System.out.print(str.trim());
    }
}

在这里插入图片描述
substring函数,这个第一个参数是我们要返回串的首下标,第二个参数不像c++一样是长度,第二个也是下标,是结尾的下标,但是结尾的下标取不到,只能取到前一个。

public class Main {
    public static void main(String[] args) {
        String str = "Roseanne Park BlackPink";
        System.out.print(str.substring(0,10));
    }
}

replace可以替换字符串和字符,我们也可以用它删除字符或者字符串,就是把他换成空串。

我们遍历String不方便的话,我们可以把他转化成字符数组并进行遍历。

public class Main {
    public static void main(String[] args) {
        String str = "Roseanne Park BlackPink";
        char[] str1 = str.toCharArray();
        for(char X : str1) {
            System.out.println(X);
        }
    }
}

三、StringBuilder StringBuffer

String不能被修改,要是想要修改的话可以使用StringBuilder,StringBuffer。
StringBuffer线程安全,速度比较慢,StringBuilder线程不安全,速度较快

public class Main {
    public static void main(String[] args) {
        StringBuffer sb = new StringBuffer("Hello ");
        sb.append("World");
        System.out.println(sb);

        for(int i=0;i<sb.length();i++) {
            sb.setCharAt(i,(char)(sb.charAt(i)+1));
        }

        System.out.println(sb);
    }
}

在这里插入图片描述

posted @   wxw_sunming  阅读(27)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 地球OL攻略 —— 某应届生求职总结
· 周边上新:园子的第一款马克杯温暖上架
· Open-Sora 2.0 重磅开源!
· 提示词工程——AI应用必不可少的技术
· .NET周刊【3月第1期 2025-03-02】
点击右上角即可分享
微信分享提示