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

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

StringBuilder

字符

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

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

Character类

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

Character sex=new Character('男');

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

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

字符串

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

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

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

String类字符串

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

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

String 字符串变量名;
字符串变量名="字符串常量";
String username="";
username="Tom"
 
或者
 
String 字符串变量名="字符串常量";
String SayHello="Hello world";
 
或者
 
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  
String sa=new String("Hello world");            
String sb=new String("Hello world");      
System.out.println(sa==sb);  // false       
//代码2    
String sc="Hello world";    
String sd="Hello world";  
System.out.println(sc==sd);  // true   

字符数组转换为字符串

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

字符串转换为字符数组

public class myfirst {
	public static void main(String[] args) {
		String helloString ="hello";        //声明一个字符串变量并赋值
		char []helloArray=helloString.toCharArray(); //进行字符串和字符数组的转换
		for(int i=0;i

你可能感兴趣的:(学习,笔记)