• Java学习笔记——字符/字符串


    在  Java 语言中,字符串都被设计成「不可变」的类型,即无法直接修改字符串的某一位字符,需要新建一个字符串实现

    StringBuilder

    字符

    字符是用单引号括起来的单个字母,在Java中,表示字符的数据类型为char。一个字符在内存中占16位大小的空间(2个字节)。在编写程序的多数时候,使用字符值,通常会使用原始的char类型。例如:

    1. char ch ='a'; //创建一个名为ch的字符并赋值
    2. char uniChar='\u039a'; //创建大写的希腊omega字符的Unicode编码
    3. char [] charArray={'h','e','l','l','o'}; //创建一个字符的数组charArray并赋值
    4. char sex='男'; //创建一个名为sex的字符并赋值

    Character类

    在实际开发过程中,我们经常会遇到需要使用对象,而不是内置数据类型的情况。为了解决这个问题,Java语言为内置数据类型char提供了包装类Character类,提供了一个“包装(wrapper)器”类,用来将char类型的字符“包装”为一个Character对象。可以使用Character构造器创建一个Character对象,例如:

    Character sex=new Character('男');

    Java编译器会根据需要自动创建一个Character对象。将一个char类型的参数传递给需要一个Character类型参数的方法时,那么编译器会自动地将char类型参数转换为Character对象。 这种特征称为装箱,反过来称为拆箱

    1. Character ch = 'a'; // 原始字符 'a' 装箱到 Character 对象 ch 中
    2. char c= test('x'); //原始的'x'被装箱用于方法test,返回值被拆箱为字符'c'

    字符串

    字符串(String)是用一对双引号括起来的零个或多个字符组成的有限序列。在Java中,字符串被当作对象来处理。

    程序中需要用到的字符串可以分为两大类:

    String类:创建之后不会再做修改和变动的字符串常量
    StringBuffer类:创建之后允许再做更改和变化的字符串变量。
    串的两种最基本的存储方式是顺序存储方式和链接存储方式。

    String类字符串

    字符串变量必须赋值后才可以使用,这称为字符串对象初始化。

    字符串的创建和赋值的方式有三种:

    1. String 字符串变量名;
    2. 字符串变量名="字符串常量";
    3. String username="";
    4. username="Tom"
    5. 或者
    6. String 字符串变量名="字符串常量";
    7. String SayHello="Hello world";
    8. 或者
    9. String studentName=new String("周杰杰");

    String对象的创建:

    1、利用构造器:

    String s=new String("Hello world");

    2、直接创建:

    String s="Hello world";

       代码1中局部变量sa,sb中存储的是JVM在堆中new出来的两个String对象的内存地址。虽然这两个String对象的值(char[]存放的字符序列)都是"Hello world"。 因此"=="比较的是两个不同的堆地址。代码2中局部变量sc,sd中存储的也是地址,但却都是常量池中"Hello world"指向的堆的唯一的那个拘留字符串对象的地址 。自然相等了。

    1. //代码1
    2. String sa=new String("Hello world");
    3. String sb=new String("Hello world");
    4. System.out.println(sa==sb); // false
    5. //代码2
    6. String sc="Hello world";
    7. String sd="Hello world";
    8. System.out.println(sc==sd); // true

    字符数组转换为字符串

    1. public class myfirst {
    2. public static void main(String[] args) {
    3. char []helloArray= {'h','e','l','l','o'}; //声明一个字符数组
    4. String helloString=new String(helloArray); //将字符数组作为构造函数的参数
    5. System.out.println(helloString);
    6. }
    7. }

    字符串转换为字符数组

    1. public class myfirst {
    2. public static void main(String[] args) {
    3. String helloString ="hello"; //声明一个字符串变量并赋值
    4. char []helloArray=helloString.toCharArray(); //进行字符串和字符数组的转换
    5. for(int i=0;i//for循环输出字符数组
    6. System.out.print(helloArray[i]+" ");
    7. }
    8. }
    9. }

  • 相关阅读:
    618大促有哪些值得买的家居好物?618五款必Buy好物
    vue源码分析(四)——vue 挂载($mount)的详细过程
    LeetCode_704_二分查找
    如何在Windows上安装并启动MySql
    1046 Shortest Distance
    CSS 选择器-认识并应用选择器
    【postgresql初级使用】updatable view 可修改的视图,以及视图数据致性的控制,完全分离数据报表业务与数据的维护操作部署架构尝试
    C语言实现简单线程池
    直播岗位认知篇
    算法---二进制字符串重新安排顺序需要的时间(Kotlin)
  • 原文地址:https://blog.csdn.net/weixin_53432918/article/details/133102565