• Java的String类


    1.      String对象的构造

    String s = new String(…);//参数…有四种类型

    ①String s1 = new String(“abc”);

    创建s1并且把”abc”的值赋给s1.

    ②String s2 = new String(s1);

    创建s2并且把字符串s1的值赋给s2.

    ③String s3 = new String(char[] ch);

    创建s3并且把字符数组的元素组成的字符串的值赋给s3

    ④String s4 = new String(char[] ch,int startIndex,int length);

    创建s4并且把字符数组的若干元素组成的字符串的值赋给s4,这些元素是下标从startIndex开始的length个元素.

     

    2.      将常量赋给String常量对象

    String s1 = “abc”;与String s2 = newString(“abc”);的区别在于s1为字符串常量对象,s2为字符串(变量)对象.

    对比:

    String s1 = “abc”;

    String s2 = “abc”;

    String s3 = new String(“abc”);

    String s4 = new String(“abc”);

    他们的内存分配示意图如下

     

    比较的代码如下(==用于比较字符串的地址是否相同)

    		String s1,s2;
    		s1 = "abc";
    		s2 = "abc";
    		System.out.println(s1==s2);
    		
    		String s3,s4;
    		s3 = new String("abc");
    		s4 = new String("abc");
    		System.out.println(s3==s4);
    运行结果如下

    true
    false

     

    3.      String类的各类方法

    ①s.length()方法

    获取字符串s的长度

    例如

    	String s = new String("123456");
    	System.out.println(s.length());

    运行结果如下

    6

     

    ②s1.equals(String s2)方法

    比较两个字符串s1和s2的内容是否相等

    例如

    		String s1 = new String("123456");
    		String s2 = new String("123456");
    		String s3 = new String("你好123456");
    		System.out.println(s1.equals(s2));
    		System.out.println(s1.equals(s3));
    运行结果如下

    true
    false

    ③s1.endsWith(s2)方法和s1.startssWith(s2)方法

    判断s1是否以s2位后缀(前缀)

    例如

    		String s1 = new String("早上好123456");
    		String s2 = new String("好123456");
    		System.out.println(s1.endsWith(s2));
    		System.out.println(s1.startsWith("你好"));
    运行结果如下

    true
    false

     

    ④s1.compareTo(s2)方法和s1.compareToIgnoreCase(s2);

    比较字符串s1和s2的大小,比较的依据是ASCII码.

    compareTo考虑大小写的差别,compareToIgnoreCase忽略大小写.

    例如

    		String s = new String("abcde");
    		System.out.println(s.compareTo("Boy"));
    		System.out.println(s.compareToIgnoreCase("Boy"));
    		char x = 'a',y = 'B',z = 'b';
    		System.out.println(""+(int)(x)+" "+(int)(y)+" "+(int)(z));
    运行结果如下

    31
    -1
    97 66 98

    可以看出运行结果跟ASCII码的关系.


    ⑤s1. contains(s2)方法

    判断s1中是否以s2作为子串.

    例如

    		String s = new String("my name is Kangkang");
    		System.out.println(s.contains("kang"));
    		System.out.println(s.contains("My"));
    运行结果如下

    true
    false


    ⑥s1.indexOf(s2,startIndex)方法

    判断s1中从startIndex开始的位置,如果有s2这个子串,则返回s2的位置(s2首字符的下标),否则返回-1.

    startIndex可以缺省,缺省值为0.

    例如

    		String s = new String("Kangkang");
    		System.out.println(s.indexOf("ang"));
    		System.out.println(s.indexOf("ang",2));
    运行结果如下

    1
    5


    ⑦s.substring(startIndex,endIndex)方法

    获取s中从startIndex开始到endIndex结束的子串,获取的子串包含下标为startIndex的字符,不包含下标为endIndex的字符.

    endIndex可以缺省,缺省值为s.length().

    例如

    		String s = new String("Good morning");
    		System.out.println(s.substring(1,s.length()));
    		System.out.println(s.substring(5,12));
    运行结果如下

    ood morning
    morning


    ⑧s.trim()方法

    如果s的前后(不是中间)有空格,那么返回去掉空格之后的字符串.

    例如

    		String s = new String(" 李晓红 ");
    		System.out.println(s.equals("李晓红"));
    		System.out.println(s.trim().equals("李晓红"));
    运行结果如下

    false
    true


    ⑨s.charAt(index)方法

    获取字符串s中下标为index的字符.

    例如

    System.out.println("xyz".charAt(1));

    运行结果为

    ————————

    y

    ————————

    4.      字符串与基本数据类型之间的相互转化

    ①int,float,double,long…→String.

    有两种方法.

    方法一:在数字前面加上一个空字符串,就可以将数字转化为字符串.

    例如

    		String s = ""+123456;
    		System.out.println(s.length());
    运行结果为

    6

    方法二:使用String类的valueOf()方法

    例如

    		String s1 = String.valueOf(123);
    		String s2 = String.valueOf(123.456);
    		System.out.println(s1);
    		System.out.println(s2);
    运行结果为

    123
    123.456


    ②String→int,float,double,long….

    使用

    Integer类的parseInt()方法

    Float类的parseFloat()方法

    Double类的parseDouble()方法

    Long类的parseLong方法

    分别进行相应的转化.

    例如

    		String s1 = "123";
    		String s2 = "123.456";
    		int x = Integer.parseInt(s1);
    		float y = Float.parseFloat(s2);
    		System.out.println(x+y);
    运行结果为

    246.456

    ③long→各种进制的字符串表示

    例如

    		String s1 = Long.toString(12);
    		String s2 = Long.toBinaryString(12);
    		String s3 = Long.toHexString(12);
    		System.out.println("字符串:"+s1);
    		System.out.println("二进制:"+s2);
    		System.out.println("十六进制:"+s3);
    运行结果为

    字符串:12
    二进制:1100
    十六进制:c

     

    ④char ch[]→String

    使用前面介绍的字符串的第3和第4种创建方法.

    例如

    		char ch [] = {'h','e','l','l','o'};
    		String s = new String(ch);
    		System.out.println(s);
    运行结果为

    hello

    ⑤String→char ch[]

    使用String类的toCharArray()方法.

    例如

    		char ch[];//1.先定义一个字符数组
    		ch = "HelloWorld".toCharArray();//2.转化并存储
    		for(char c:ch)//遍历字符数组
    			System.out.print(c+" ");
    		System.out.println();
    运行结果为

    H e l l o W o r l d 


  • 相关阅读:
    Anaconda 安装及包管理工具 conda 进行虚拟环境包管理的基本操作
    终端分屏复用工具 tmux 基本操作教程
    在远程登陆的Ubuntu服务器上通过命令行源码编译安装 GNU M4、autoconf、automake 等程序
    Ubuntu18.04 使用过程遇到的问题记录
    缓冲区溢出基础实践(二)——ROP 与 hijack GOT
    vue.js 使用记录(1)
    fis3 安装(Linux)
    js常用共同方法
    ajax跨域 自定义header问题总结
    服务器配置记录
  • 原文地址:https://www.cnblogs.com/tensory/p/6590775.html
Copyright © 2020-2023  润新知