黑马程序员技术交流社区

标题: String的概述及其方法 [打印本页]

作者: Asarao    时间: 2018-1-29 13:49
标题: String的概述及其方法
使用API要看什么?
        看包,需不需要导包;java.lang包下的类使用的时候不需要导包
        看类的描述:类的介绍
        看构造方法:创建对象
        看成员方法;方法如何调用,需要什么参数就给什么参数;
                        返回值,返回什么类型,就用什么类型接受

nextLint()(获取键盘录入的字符串,返回值类型为String)
        不能和其他next方法一起使用,否则会出现问题

当你想输入一个数字和字符串的时候,我们只能使用next的方法

String 字符串类:
                由多个字符组成的一串数据
                字符串其本质是一个字符数组
String (String original) 把字符串数据封装成字符串对象
String str = new String("hello");
String (char[] value)把字符数组的数据封装成字符串
char[] chs ={'h','e',l'','l','0'}
String str = new String(chs);
String (char[] value,int offset,int count)把字符串数组中的一部分封装成一个字符串
char[] chs ={'h','e',l'','l','0'}
String str = new String(chs,0,5);

直接赋值的方式
String str = "hello";

==:        基本数据类型>>>比较的是基本数据类型的值是否相同
        引用数据类型>>>比较的是引用数据类型的地址值是否相同

字符串是存储在方法区的常量池中,是为方便字符串的重复使用

通过构造方法创建的字符串对象和直接复制创建的字符串对象的区别
        通过构造方法创建的字符串指向堆空间
        直接赋值:指向方法区的常量池
Object : 是类层次结构中的根类,所有的类都直接或间接的继承自该类
判断功能
String str = "abcdefghijklmnopqrstuvwxyz";
String str2 = "abcDEFGHijklMNopqrstUVWxyZ";
startsWith();        判断是否以指定字符串开始
        boolean flag = str.startsWith('abc');
endsWith();        判断是否以指定字符串结尾
        boolean flag = str.endsWith('xyz');
contains();        判断是否包含指定字符
        boolean flag = str.contains('g');
equals();        判断两个字符串是否相同(区别大小写)
        boolean flag = str.equals(str2);//false
equalsIgnoreCase; 判断两个字符串是否相同(忽略大小写)
        boolean flag = str.equalsIgnoreCase(str2)//true
isEmpty();        判断字符串是否为空;
        boolean flag = str.isEmpty();//false

获取功能:
String str = "a@ssjkiweifjo^^&*))oilp";
substring(int startIndex,int endIndex); 获取指定区间的字符串
                包含startIndex,不包含endIndex
        str2 = str.sunstring(3,10)//[3,10)
substring(int startIndex) 从start开始截取字符

length();         获取字符串的长度
        int length = str.length();23  索引从0开始以length结束
indexOf();         获取指定字符串第一次出现的位置(索引)
        int firstIndex = str.indexOf('i');// 6
lastIndextOf();        获取指定字符串最后一次出现的位置(索引)
        int lastIndex = str.lastIndexOf('i'); //20
charAt();        获取指定索引上的字符
        char ch = str.charAt(5);//'k'

转换功能:
String str = "a@ssjkiweifjo^^&*))oilp";
toUpperCase();        将字符串中的所有小写字符转换为大写
        String str2 = str.toUpperCase();//"A@SSJKIWEIFJO^^&*))OILP"
toLowerCase();        将字符串中的所有大写字符转换为小写
        String str3 =str2.toLowerCase() //"a@ssjkiweifjo^^&*))oilp"
contact();相当于+号
String str4 = str2.contact(str3);//"A@SSJKIWEIFJO^^&*))OILPa@ssjkiweifjo^^&*))oilp"
toCharArray();将字符串转换为字符数组
char[] ch =str.toCharArray();

其他功能:
String str = "abc  ##def  bbb##  lop";
trim();  去除字符串中两端的空格字符
        String str2 = str.trim(); //"abcdefbbblop"
split();  截取指定字符串之间的字符串
String str2 = str.split("##");//"def  bbb"
replace();替换指定字符串

StringBuilder  是一个可变的字符串,字符串缓冲区
        String的内容是固定的
        StringBuilder 的内容是可变的
public int capacity()  返回当前容量  理论值  
存储能力,当你添加数据会自动扩容,所以可以不断地的添加数据

public int lengrh()    长度  实际值(字符数)实际存储的字符个数

StringBuilder sb = new StringBuilder;添加功能
        //public StringBulider append(任意类)
sb.append();添加对象,并返回自身

sb.reverse();反转对象,并返回自身


public StringBuilder reverse()反转功能






欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/) 黑马程序员IT技术论坛 X3.2