java中String类小结

构建一个字符串

1、用字符串直接量:

String message = new String("Welcome to java");

2、用字符串直接量:

String message = "Welcome to java";

3、用字符数组

Char[] charArray = {'m', 'y'};

String message = new String(charArray);

不可变字符与限定字符串

String对象是不可变的,内容不能改变

java虚拟机为了提高效率并节约内存,对具有相同字符串序列的字符串直接量使用同一个实例:

1

2

3

4

5

6

7

8

9

10

11

12

public class Main

{

    public static void main(String args[])

    {

        String s1 = "Welcome to java";

        String s2 = new String("Welcome to java");

        String s3 = "Welcome to java";

         

        System.out.println("s1 == s2 is " + (s1 == s2));

        System.out.println("s1 == s3 is " + (s1 == s3));

    }

}

结果:

s1 == s2 is false
s1 == s3 is true

字符串的比较

 字符串相等的比较:

1、使用equals方法

boolean equals(Object anObject) :当anObject不为空并且与当前String对象一样,返回true;否则,返回false

2、使用compareTo方法

int compareTo(String anotherString) :当前String对象与anotherString比较相等关系返回0不相等时,从两个字符串第0个字符开始比较,返回第一个不相等的字符差,另一种情况,较长字符串的前面部分恰巧是较短的字符串,返回它们的长度差。
int compareTo(Object o) :如果o是String对象,和2的功能一样;否则抛出ClassCastException异常。

1

2

3

4

5

6

7

8

9

10

public static void main(String args[])

   {

       String s1 = "Welcome to java";

       String s2 = new String("Welcome to java");

       String s3 = "Welcome to C++";

       System.out.println(s1.equals(s2));

       System.out.println(s1.equals(s3));

       System.out.println(s1.compareTo(s2));

       System.out.println(s1.compareTo(s3));

   }

运行结果:

true
false
0
39

字符串长度、字符以及组合字符串

String类提供获取字符串长度、获取单个字符和连接字符串的方法

1

2

3

4

5

6

7

8

9

10

public static void main(String args[])

{

    String s1 = "Welcome to java";

    System.out.println("s1's length is: " + s1.length());

    System.out.println("s1[2] == " + s1.charAt(3));

    String s2 = " bigjava";

    String s3 = s1.concat(s2);

    System.out.println(s3);

    System.out.println(s1);

}

运行结果:

s1[2] == c
Welcome to java bigjava
Welcome to java

也可以使用(+)连接两个或更多的字符串:String s3 = s1 + s2;

获取子串

使用charAt获取单个字符

也可使用String类中的substring 方法从字符串中提取子串:

String substring(int beginIndex) 取从beginIndex位置开始到结束的子字符串
String substring(int beginIndex, int endIndex) :取从beginIndex位置开始到endIndex位置的子字符串

1

2

3

String s1 = "Welcome to java";

System.out.println(s1.substring(4));

System.out.println(s1.substring(27));

运行结果:

ome to java
lcome

字符串的转换、替换和分隔

String toLowerCase() :将字符串转换成小写。
String toUpperCase() :将字符串转换成大写。

1

2

3

String s = "Welcome to java";

System.out.println("s.toUpperCase(): " + s.toUpperCase()); //s.toUpperCase(): WELCOME TO JAVA

System.out.println("s.toLowerCase(): " + s.toLowerCase()); //s.toLowerCase(): welcome to java

String replace(char oldChar, char newChar) :将字符号串中第一个oldChar替换成newChar

String replaceFirst(char oldString, char newString) :将字符号串中第一个oldString替换成newString

String replaceAll(char oldString, char newString) :将字符号串中所有匹配的oldString替换成newString

1

2

3

4

String s = "Welcome to java";

System.out.println(s.replace('e''m'));

System.out.println(s.replaceFirst("e""AB"));

System.out.println("eleleledsafsdfhie".replaceAll("el""wml"));

运行结果:

Wmlcomm to java
WABlcome to java
wmlwmlwmledsafsdfhie

public String[] split(String regex):将一个字符串按照指定的分隔符分隔,返回分隔后的字符串数组

1

2

3

4

5

6

7

8

public static void main(String args[])

{

        String s = "2014/07/08";

        String[] array = s.split("/");

        for(int i = 0; i < array.length; ++i) {

            System.out.print(array[i] + " ");

        }

}

运行结果:

2014 07 08 

public String trim():返回该字符串去掉开头和结尾空格后的字符串

1

2

String s = "  weer ewre ";

System.out.println(s.trim());  // weer ewre

找出字符串中的某个字符或者某个子串

int indexOf(int ch) :只找第一个匹配字符位置
int indexOf(int ch, int fromIndex) :从fromIndex开始找第一个匹配字符位置
int indexOf(String str) :只找第一个匹配字符串位置
int indexOf(String str, int fromIndex) :从fromIndex开始找第一个匹配字符串位置

1

2

3

4

5

6

7

8

9

10

11

12

public class Main

{

    public static void main(String args[])

    {

        String s = new String("talk is cheap, show me your code!");

        String ss = new String("me");

        System.out.println(s.indexOf('s'));

        System.out.println(s.indexOf('s'7));

        System.out.println(s.indexOf("ch"));

        System.out.println(s.indexOf("ch"9));

    }

}

运行结果:

6
15
8
-1

int lastIndexOf(int ch)
int lastIndexOf(int ch, int fromIndex)
int lastIndexOf(String str)
int lastIndexOf(String str, int fromIndex) 以上四个方法与13、14、15、16类似,不同的是:找最后一个匹配的内容

1

2

3

4

5

6

7

8

9

10

11

12

public class Main

{

    public static void main(String args[])

    {

        String s = new String("talk is cheap, show me your code!");

        String ss = new String("me");

        System.out.println(s.lastIndexOf('c'));

        System.out.println(s.lastIndexOf("e"));

        System.out.println(s.lastIndexOf('e'7));

        System.out.println(s.lastIndexOf("me"22));

    }

}

运行结果:

28
31
-1
20

字符串与数组之间的转换

char[ ] toCharArray() :将该String对象转换成char数组

void getChars(int srcBegin, int srcEnd, char[] dst, int dstBegin) :该方法将字符串拷贝到字符数组中。其中,srcBegin为拷贝的起始位置、srcEnd为拷贝的结束位置、字符串数值dst为目标字符数组、dstBegin为目标字符数组的拷贝起始位置。

1

2

3

char[] s1 = {'I',' ','l','o','v','e',' ','h','e','r','!'};//s1=I love her!

String s2 = new String("you!"); s2.getChars(0,3,s1,7); //s1=I love you!

System.out.println( s1 );

运行结果:

I love you!

将字符和数值转换成字符串

static String valueOf(boolean b)
static String valueOf(char c)
static String valueOf(char[] data)
static String valueOf(char[] data, int offset, int count)
static String valueOf(double d)
static String valueOf(float f)
static String valueOf(int i)
static String valueOf(long l)
static String valueOf(Object obj)
以上方法用于将各种不同类型转换成Java字符型。这些都是类方法。

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

public class Main

{

    public static void main(String args[])

    {

        String s1 = String.valueOf('c');

        char[] charArray = {'w''e''a''r'};

        String s2 = String.valueOf(charArray);

        double d = 3.1415926;

        String s3 = String.valueOf(d);

        float f = 2.045f;

        String s4 = String.valueOf(f);

        int i = 2324;

        String s5 = String.valueOf(i);

        long l = 2135123;

        String s6 = String.valueOf(l);

        boolean b = false;

        String s7 = String.valueOf(b);

        System.out.println(s1);

        System.out.println(s2);

        System.out.println(s3);

        System.out.println(s4);

        System.out.println(s5);

        System.out.println(s6);

        System.out.println(s7);

    }

}

运行结果:

c
wear
3.1415926
2.045
2324
2135123
false

  • 2
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值