JAVA——String类
来源:互联网 发布:单片机datesheet是什么 编辑:程序博客网 时间:2024/05/01 05:01
String类
字符串:一串字符,可以看成一个字符数组。
字符串是常量,一旦被赋值,就不能被改变
如上图,不能改变的意思是指”hello”或者”world”不能变,而s作为引用是可以变的。
1、构造方法:
public String() : 空构造
public String(byte[] bytes) : 把字节数组转成字符串
public String(byte[] bytes, int index , int length):把字节数组的一部分(从下标index处开始(包括index处字符)往后取length个字符)组成字符串
public String(char[] value):把字符数组转成字符串
public String(char[] value , int index , int count):把字符数组的一部分(从第index处开始(包括index处字符)往后取length个字符)组成字符串
2、常用方法:
<1>获取长度:
public int length():返回字符串的长度
<2>判断功能:
boolean equalsIgnoreCase(Object obj) :比较字符串的内容是否相同
boolean equalsIgnoreCase(String str) :忽略大小写比较字符串的内容是否相同
boolean contains(String str):判断大字符串是否包含小字符串str
boolean startWith(String str):判断字符串是否以某个指定的字符串str开头
boolean endWith(String str):判断字符串是否以某个指定的字符串str结尾
boolean isEmpty():判断字符串是否为空
注意:
**字符串内容为空和字符串为空的区别
String s = “” ; //内容为空
String s = null ; //字符串为空 ,此时调用isEmpty()方法的话会报空指针异常错误**
<3>获取值
int length() :获取字符串的长度
char charAt(int index):获取指定索引位置的字符
int indexOf(int ch):返回指定字符ch第一次出现处的索引
注:此时参数和返回值都是int类型,而不是char类型
int indexOf(String str , int fromIndex):返回指定字符串str第一次出现的索引
String substring(int start) :从指定位置start开始截取字符串
String substring(int start , int end):从指定开始位置到指定结束位置截取字符串
<4>String的转换功能
byte getBytes() :把字符串转换为字节数组
char[] toCharArray():把字符串转换为字符数组
static String valueOf(char[] chs):把字符数组转换为字符串
static String valueOf(int i):把int型的数据转换为字符串
注意:String类的valueOf()方法可以把任意类型的数据转换为字符串
String toLowerCase():把字符串转成小写
String toUpperCase():把字符串转成大写
String concat(String str):把字符串拼接
<5>其他功能:
替换功能:
String replace(char old, char new)
String replace(String old , String new)
去除字符串连续的两空格:
String trim() ;
按字典顺序比较两个字符串:
int compareTo(String str)
int compareToIgnoreCase(String str) //不区分大小写
注:返回的int值是依次比较两个字符串中的每一位上的字符,相等就比较下一位,不同就把该位上的两个字符相减得到它们的ASCII值的差值。如果要比较的字符串是当前字符串的子串,即前n位都相同,那么返回长度的差值。
我们可以从compareTo的源码中看到:
public int compareTo(String anotherString) { int len1 = value.length; //value就是当前字符串的char型数组,获取其长度 int len2 = anotherString.value.length; //获取要比较的字符串的长度 int lim = Math.min(len1, len2); //取两个长度中的最小值 char v1[] = value; //转成字符数组 char v2[] = anotherString.value;//转成字符数组 int k = 0; while (k < lim) { char c1 = v1[k]; //获取当前字符串中下标为k的位上的字符 char c2 = v2[k]; //获取要比较的字符串中下标为k的位上的字符 if (c1 != c2) { return c1 - c2; //两个字符不同的话就返回ASCII差值 } k++; } return len1 - len2; //如果前lim位都相同,则返回两个字符串的长度差 }
3、面试题
String s = new String(“Hello”) 与 String s = “Hello”的区别是什么?
答:前者会创建2个或者1个对象,后者会创建1个或者0个对象。如下图:
4、
- java——string类
- java——String类
- JAVA——String类
- Java——String类
- Java基础—String类
- Java基础—String类
- JAVA常用类之——String和String Builler
- Java——String
- java—关于String
- Java笔记——String类(01)
- Java笔记——String类(02)
- 黑马程序员——【java】String类
- Java基础知识——String类笔记
- 每天学JAVA——String 类
- JAVA基础——String类
- java基础——String类
- 黑马程序员——JAVA String类
- 黑马程序员——Java String类
- G
- 简单的实现自定义广播(Broadcast)机制
- fscanf 读入4096行数据
- linux基本指令
- 小学数学
- JAVA——String类
- ssl讲解
- 爬新浪国内新闻网的某个新闻的评论
- poj 1189 钉子和小球
- 华为OJ矩阵乘法计算量估算
- Adventure of Super Mario UVA
- code[vs] 1014 装箱问题(01背包)
- C++笔记(二)
- POJ-3686-The Windy's(KM/费用流)