1、String有两种实例化的操作:
第一种是:直接赋值 String a=”Hello”;
第二种是:通过关键字new String a=new String (“Hello”);
两个方法比较:
String a=”hello” String a1=new String(“hello”);
Stirng b=”hello” String b1=new String(“hello”);
a和b指向的是同一内存空间,而a1和b1指向的是不同的内存空间,因为new关键在是用来分配内存的,而”hello”是字符串常量。所以,采用第一种方法比较节省内存空间。
2、String的内容比较
String的内容比较是用equals()这个方法来比较的。比如说
System.out.println(str1.equals(str2);
而str1==str2这种用来判断两个字符串是否指向同一个地址的。
3、字符串的内容一旦声明就不可改变
String str=”hello”;
Str+=” world”;
System.out.println(str);
虽然输出的是hello world.
但字符串的内容没有变,而是改变堆内存的指向,指向了 hello world字符串的地址。
4、字符串的常用方法
4.1字符串与字符数组的互换
字符串变为字符数组:
Char c[]=str.toCharArray();
字符数组变为字符串:
String str=new String(c);//c为一个字符数组名称,将数组全部变为字符串
String str2=new String(c,0,5);//将部分数组变为字符串。
4.2从字符串指定位置取出字符(public char CharAt(int index))
4.3字符串和Byte数组的互换
Byte数组,一般在Io操作中会经常用到
字符串变为byte数组:
Byte c[]=str.getBytes();
byte数组变为字符串:
String str=new String(c);//c为一个byte数组名称,将数组全部变为字符串
4.4取得字符串的长度(Str.Length();)
4.5查找并判断一个字符是否串是否存在
从头开始:public int indexOf(String c);
从某一个位置开始: public int indexOf(String str,int index);
str.indexOf(“s”);
Str.indexOf(“s”,3);
4.6去掉空格(str.trim();)
4.7字符截取
Public String subString(int beginIndex);
Public String subString(int beginIndex,int endIndex);
4.8拆分字符串
Public String[] split(String regex);//regex是指依据什么来拆,比如” “空格
4.9大小写转换、不区分大小写的比较
Public String toLowerCase();
Public String toUpperCase();
Public boolean equalsIgnoreCase(String anotherString);
4.10判断是否以指定的字符串开头或者结尾
Public boolean startsWith(String prefix);
Public boolean endsWith(String suffix);
4.11字符串的替换功能
Public String replaceAll(String regex,String replacement);//将所有的regex换成replacement