String类

String类

1.String类就是一个不可变字符串类
2.字符串数据是程序中处理最频繁的数据。
介绍“jdk【java开发工具包】 api【应用程序接口】”

public final class String
extends Object
implements Serializable, Comparable<String>, CharSequence

String类使用final修饰,没有子类,不可被继承。
String类代表字符串。 Java程序中的所有字符串文字(例如"abc" )都被实现为此类的对象。
字符串不变; 它们的值在创建后不能被更改。

1.String 类如何创建对象

1.直接赋值-将字符串数据值直接赋值给String类型的变
    字符串数据值需要双引号包围。
    String  str1="hello";
2.通过构造方法创建对象
    String()初始化新创建的 String对象,使其表示空字符序列。
    String(String original) 初始化新创建的String对象,使其表示与参数相同的字符序列; 换句话说,新创建的字符串是参数字符串的副本。 
    String(byte[] bytes) 通过使用平台的默认字符集解码指定的字节数组来构造新的 String 。
    String(char[] value) 分配一个新的 String ,以便它表示当前包含在字符数组参数中的字符序列。     String(StringBuffer buffer) 分配一个新的字符串,其中包含当前包含在字符串缓冲区参数中的字符序列。  
    String(StringBuilder builder) 分配一个新的字符串,其中包含当前包含在字符串构建器参数中的字符序列。

例如:

package com.wangxing.stringdemo1;
public class TestMain1 {
	public static void main(String[] args) {
		//String 类如何创建对象
		//1.直接赋值-将字符串数据值直接赋值给String类型的变量
		String str1="hello";
		System.out.println("str1=="+str1);
		//2.通过构造方法创建对象
		//String()创建一个空的字符串对象
		String  str2=new  String();
		str2="world";
		System.out.println("str2=="+str2);
		//String(String original)创建一个有默认值的字符串对象,默认值就是参数值
		String  str3=new String("hello,world");
		System.out.println("str3=="+str3);
		String value="world,hello";
		String  str4=new String(value);
		System.out.println("str4=="+str4);
		//String(byte[] bytes)通过字节数组创建字符串对象;将字节数组转换成字符串
		//注意:字节数组中的整数数字会被转换成对应字符,然后组成字符串
		byte bytearray[]={97,98,99,100};
		String str5=new String(bytearray);
		System.out.println("str5=="+str5);
		//String(char[] value)通过字符数组创建字符串对象;将字符数组转换成字符串
		char  chararray[]={'大','家','好'};
		String str6=new String(chararray);
		System.out.println("str6=="+str6);
	}
}

2.String类中常用的方法

1.char charAt(int index)得到原始字符串中指定位置的字符【位置从0开始】
2.String concat(String str)将字符连接起来组成一个新的字符串
3.boolean contains(String str)判断指定的字符序列,是否在原始字符串中存在
4.boolean endsWith(String suffix)匹配后缀,查看字符串是否以指定后缀结尾
5.boolean startsWith(String prefix)匹配前缀,查看字符串是否以指定前缀开头
6.byte[] getBytes()将字符串转换成字节数组
7.int indexOf(String str)得到指定字符串数据在原始字符串中第一次出现的位置
8.int lastIndexOf(String str)得到指定字符串数据在原始字符串中最后一次出现的位置 
9.boolean isEmpty()判断字符串是否为空,字符串长度为0
10.int length() 返回此字符串的长度。
**11.boolean matches(String regex)匹配正则表达式**
12.String replace(String old, String new)用指定的字符串替换就得字符串数据
13.String[] split(String regex)将原始字符串通过执行的符号拆分成一个字符串数组
14.String substring(int beginIndex)从指定的开始位置截取到字符串结尾,得到一个子字符串  
     String substring(int beginIndex, int endIndex)从指定的开始位置截取到指定的结束位置,得到          一个子字符串  
15.char[] toCharArray()将字符串转换成字符数组
16.String toUpperCase() 将字符串中的字母转换成大写字母  
17.String toLowerCase()将字符串中的字母转换成小写字母
18.String trim()去掉原始字符串中两头的空格

例如:

package com.wangxing.stringdemo1;

public class TestMain2 {
	public static void main(String[] args) {
		//创建一个字符串对象
		String  str1=new String("hello,world");
		//1.char charAt(int index)得到原始字符串中指定位置的字符【位置从0开始】
		System.out.println("charAt(0)=="+str1.charAt(1)); //e
		//2.String concat(String str)将字符连接起来组成一个新的字符串[等价于 + 连接]
		String str2=str1.concat("大家好");
		System.out.println("str2=="+str2);
		String str3=str1+"大家好";
		System.out.println("str3=="+str3);
		//3.boolean contains(String str)判断指定的字符序列,是否在原始字符串中存在
		System.out.println("contains(\"hello\")=="+str1.contains("hello"));
		//4.boolean endsWith(String suffix)匹配后缀,查看字符串是否以指定后缀结尾
		String names[]={"张三","李四","王五","乔三"};
		for(String name:names){
			if(name.endsWith("三")){
				System.out.println("name=="+name);
			}
		}
		//5.boolean startsWith(String prefix)匹配前缀,查看字符串是否以指定前缀开头
		for(String name:names){
			if(name.startsWith("李")){
				System.out.println("name=="+name);
			}
		}
		//6.byte[] getBytes()将字符串转换成字节数组
		byte bytearray[]=str1.getBytes();
		for(byte bytevalue:bytearray){
			System.out.print(bytevalue+",");
		}
		System.out.println("");
		//7.int indexOf(String str)得到指定字符串数据在原始字符串中第一次出现的位置
		System.out.println("indexOf(\"l\")=="+str1.indexOf("l"));
		//8.int lastIndexOf(String str)得到指定字符串数据在原始字符串中最后一次出现的位置 
		System.out.println("lastIndexOf(\"l\")=="+str1.lastIndexOf("l"));
		//9.boolean isEmpty()判断字符串是否为空,字符串长度为0
		System.out.println("isEmpty()=="+str1.isEmpty());
		//10.int length() 返回此字符串的长度。
		System.out.println("length()=="+str1.length());
		//12.String replace(String old, String new)用指定的字符串替换就得字符串数据
		String str4=str1.replace("world", "大家好");
		System.out.println("str4=="+str4);
		//13.String[] split(String regex)将原始字符串通过执行的符号拆分成一个字符串数组
		String  info="name=zhangsan;age=23;address=西安";
		String strarray[]=info.split(";");
		//strarray[0]--name=zhangsan
		//strarray[1]--age=23
		//strarray[2]--address=西安
		for(String msg:strarray){
			System.out.println(msg);
		}
		//14.String substring(int beginIndex)从指定的开始位置截取到字符串结尾,得到一个子字符串  
	    //   String substring(int beginIndex, int endIndex)
	    //从指定的开始位置截取到指定的结束位置,得到一个子字符串  
		System.out.println("substring(6)=="+str1.substring(6));
		System.out.println("substring(6,8)=="+str1.substring(6,8));
		//15.char[] toCharArray()将字符串转换成字符数组 
		char chararray[]=str1.toCharArray();
		for(char value:chararray){
			System.out.print(value+"-");
		}
		System.out.println("");
		//16.String toUpperCase() 将字符串中的字母转换成大写字母  
		String upper=str1.toUpperCase();
		System.out.println("upper==="+upper);
		//17.String toLowerCase()将字符串中的字母转换成小写字母
		String lower=upper.toLowerCase();
		System.out.println("lower==="+lower);
		//18.String trim()去掉原始字符串中两头的空格
		String str5="   zhang   san   ";
		System.out.println("str5去掉空格之前的长度==="+str5.length());
		String str6=str5.trim();
		System.out.println("str5去掉空格之后的长度==="+str6.length());
	}

3.String类的类型转换

1.String类型与字节数组的相互转换
String类型--》字节数组【String类的byte[] getBytes()方法】
字节数组--》String类型【String里的构造方法 String(byte[] bytes)】

2.String类型与字符数组的相互转换
String类型--》字符数组【String类的char[] toCharArray()方法】
字符数组--》String类型【String里的构造方法String(char[] value)】

3.String类型与基本数据类型的相互转换
基本数据类型---》String类型
1.String类提供的静态方法valueOf()
              boolean  flag=true;
              String  booleamstr=String.valueOf(flag);
              double dou=12.5;
              String doublestr=String.valueOf(dou);
2.封装类的toString()方法
              boolean flag=false;
              Boolean  booObject=new Boolean(flag);
              String  booleanstr=booObject.toString();

String类型---》基本数据类型【基本数据类型的封装类】
封装类:基本数据类型对应的复合数据类型【java类】
        只有基本数据类型才有封装类
        基本数据类型            封装类
          byte                       Byte[类名]
          short                      Short[类名]
          int                          Integer[类名]
          long                       Long[类名]
          float                       Float[类名]
          double                   Double[类名]
          char                       Character[类名]
          boolean                 Boolean[类名]
基本数据类型转换成其对应的封装类类型--自动装箱
        int num1=123;
        Integer intObjct=num1;
        Integer intObject2=new Integer(num1);
        System.out.println("intObjct=="+intObjct);    
封装类类型转换基本数据类型-----------自动拆箱
        Double douObject=new Double(12.5);
        double douvalue=douObject;
    
封装类有可供调用的变量和方法;
        String intstr=intObject2.toString();
基本数据类型没有可供调用的变量和方法
        String intstr1=num1.toString();//错误
    
String类型转换成基本类型数据--通过对应基本类型的封装类静态方法parseXXXX(String);
        double  dou11=Double.parseDouble("12.5");
        int int11=Integer.parseInt("1234");
        boolean boo11=Boolean.parseBoolean("false");

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值