众所周知,现主流的编程语言都是以英文为计算机所识别,所以当中国程序员想要创建一种,可以操纵中文的,数据类型时,String字符串类型,便有了极大的帮助。
字符串,String,是一种数据类型。所有被输入法录入的文字,都可以以字符串的数据类型,被电脑所操作。
(1)声明字符串
语法: String 对象;
String 对象,对象,对象;
String a;
String a,b,c;
(2)创建字符串
a. 直接创建字符串常量
示例:
第壹种:
String a = "天生我材必有用";
//创建的 a 对象 可以打印输出引号中的内容
第贰种:
String b ="人生得意须尽欢", c ="莫使金樽空对月";
//创建的 b对象 c对象 可以打印输出引号中的内容
第叁种:
String str1,str2;
str1 = "We are men";
str2 = "We are fighting";
//创建的 str1对象 str2对象 可以打印输出引号中的内容
b.通过构造方法 实例化 字符串常量
String a = new String("考研难,难于上青天");
String b = new String(a);
//创建的 b 对象 可以打印输出引号中的内容
c.通过字符数组 实例化 字符串常量
第壹种
char charArray[] ={'t','i','m','e'};
String a = new String(charArray);
/*创建的 a 对象 可以打印输出引号中的内容
* 输出结果:time
*/
第贰种 构造方法 public String(字节数组,获取的起始位置,获取的个数)
char charArray[] ={'时','间','就','是','金','钱'};
String a = new String(charArray,4,2);
/*创建的 a 对象 可以打印输出引号中的内容
*数组是从0开始计数 获取的个数从1开始计数
*输出结果:金钱
*/
(1)连接字符串
a.使用“+”运算符
String a ="123"+"456";
//输出结果:123456
String b = a+"789";
//输出结果:123456789
b.使用“+=”运算符 (变量对象的名字过长时 尤其推荐使用)
String somethingAboutString ="123";
somethingAboutString +="456";
/*创建的 somethingAboutString 对象 可以打印输出引号中的内容
* 输出结果:123456
*/
(2)获取字符串的长度
length()方法:获取到创建的字符串长度
String a = "0123456789";
int size = a.length();
/*创建的 size 对象 可以打印输出引号中的内容
* 输出结果:10
*/
(3)查找字符串是否存在
indexOf(" ")方法:判断字符串中是否有" "中的字符串
结果为true 返回值 为索引位置的数字 >=0
结果为false 返回值 为 -1
String object1, object2;
object1 = "8888";
object2 = "888B";
//num2中最后一位为B 不是 8
if(num1.indexOf("B")>-1){
System.out.println("物品1编码中包含B");
}else{
System.out.println("物品1编码中不包含B");
}
/* object1 中 8888 不含B 返回值为 -1
* 输出结果:物品1编码中不包含B
*/
if(num2.indexOf("B")>-1){
System.out.println("物品2编码中包含B");
}else{
System.out.println("物品2编码中不包含B");
}
/* object2 中 888B 含B 返回值为 3
* 输出结果:物品2编码中包含B
*/
(4)获取指定字符串及其位置
chatAt()方法:获取对应索引位置的子字符
String name = "Peter";
char ch = name.charAt(0);
/*创建的 ch 对象 可以打印输出引号中的内容
* 输出内容:P
*/
indexOf()方法:
a.获取第一次出现的索引
String str = "No war in the world";
int index = str.indexOf("e");
/*从0开始从左往右数,算上空格,字符串中第一个e在12
* 输出结果:12
*/
b.从指定位置开始查
String str = "We are the world";
int index =str.indexOf("e",3);
/* 从第三个位置开始索引,搜索到 are 中的 e ,此 e 在整个字符串中位于第五位
* 打印 index 的输出结果:5
*/
c.获取最后一次出现的索引
String str = "Let it go!Let it go!";
int lastIndex = str.lastInedxOf("t");
/* 索引整个字符串中最后一个 t,在 it 中 搜索到 t, t 位于整个字符串中的第十五位
* 打印 lastIndex ,输出结果:15
*/
d.从指定位置往前查
String str = "Let it go!Let it go!";
int lastIndex =str.lastInedxOf("t",14);
/*从整体字符串的第十四位开始往前数,从 it 中的 i 往前数,检索到let 中的 t,处于第 12 位
* 打印 lastIndex 输出结果:12
*/
(5)获取子字符串
substring()方法:截取字符串
a.从某个位置开始截取字符串
String id ="123456193108047890";
String birthday =id.substring(6);
/*substring()方法 从整体字符串第 6 位开始截取
* 打印 birthday 对象,输出结果:193108047890
*/
b.截取整体字符串中的部分子字符串
String id ="123456193108047890";
String birthday =id.substring(6,14);
/*截取整体字符串第 6 位到第 13 位的子字符串
* 打印 birthday 对象,输出结果:19310804
*/
(6)去除字符串中的空格
trim()方法
a.去除字符串左右两边的空格
String str =" a b c ";
String shortStr =str.trim();
System.out.println("["+str+"]");
System.out.println("["+shortStr+"]");
/* trim()方法 去除了 str 对象 整体字符串中 左右两边的空格 赋值给了shortStr
* 打印 str 对象, 输出结果:[ a b c ]
* 打印 shortStr 对象,输出结果:[a b c]
*/
b.去除字符串中所有的空格
String str ="a b c d e f ";
String shortStr =str.replaceAll("\\s","");
/* replaceAll()方法 去除了str对象中的 所有空格 赋值给了 shortStr 对象
* 打印 shortStr 对象 输出结果: abcdef
*/
(7) 字符串替换
replace()方法:
String str ="馒头一文一个";
String replaceStr =str.replace("一","壹");
/* replace()方法 将整体字符串中的 一 全部替换成 壹
* 打印 str 对象 输出结果:馒头一文一个
* 打印 replaceStr 对象 输出结果:馒头壹文壹个
*/
(8)判断字符串的开始与结束
endsWith()方法:判断字符串的结尾
String fileName ="HellowWorld.java";
boolean bool1 =fileName.endsWith(".java");
boolean bool2 =fileName.endsWith(".jpg");
/* endsWith()方法 判断整体字符串结尾 是否为某一特定 结尾 返回值 true of false
* 打印 bool1 对象 输出结果:true
* 打印 bool2 对象 输出结果:false
*/
startsWith()方法:判断字符串的开始
String str ="新华社记者从前方发来报道...";
boolean bool1 =str.startsWith("新华社");
boolean bool2 =str.startsWith("新华书店");
/* startsWith()方法 判断整体字符串开始 是否为某一特定 开始 返回值 true of false
* 打印 bool1 对象 输出结果:true
* 打印 bool2 对象 输出结果:false
*/
(9)判断字符串是否相等
equals()方法:
String name1 = new String("tom");
String name2 = new String("tom");
Boolean bool =name1.equals(name2);
/* equals()方法 判断 name1 与 name2 字符串内容相同 返回值为 true, 反之为 false
* 打印 bool 对象 输出结果:true
*/
equalsIgnoreCase()方法:忽略字母大小写,对字符串进行对比
String str1 = new String("abc");
String str2 = new String("ABC");
Boolean bool = str1.equalsIgnoreCase(str2);
/* equalsIgnoreCase()方法 忽略字母大小进行对比 相同,返回值为true,不同则为 false
* 打印 bool 对象 输出结果:true
*/
(10)字母大小写的转换
toUpperCase()方法:将字符串变成大写
toLowerCase()方法:将字符串变成小写
String str ="abcDEF";
String strLow =str.toLowerCase();
String strUp =str.toUpperCase();
/* toLowerCase()方法 将整体字符串中 所有字母 改为小写 赋值给了 strLow 对象
* toUpperCase()方法 将整体字符串中 所有字母 改为大写 赋值给了 strUp 对象
* 打印 strLow 对象 输出结果:abcdef
* 打印 strUp 对象 输出结果:ABCDEF
*/
(11)字符串分割
split()方法:
a.将字符串按照指定符号分割成数组
String str ="abc,def,ghi";
String strArray[] = str.split(",");
for(String tmp:strArray){
System.out.println(tmp);
}
/* split()方法 指定符号 分割字符串
* 输出结果:abc
* def
* ghi
*/
b.通过参数限定分割的次数
String str ="192.168.0.1";
String firstArray[] = str.split("\\.");
//上面这个是和 有数字限定分割次数的 进行对比
String secondArray[] = str.split("\\.",2);
/* split("",数字)方法 可以限定分割的次数 需要分割的次数+1=方法中填的数字
* 打印 firstArray 对象 输出结果:192 168 0 1
* 打印 secondArray 对象 输出结果:192 168.0.1
*/
以上就是今天要讲的内容,本文仅仅简单介绍了String及其方法的使用,快五千字了,大学生很容易猝死的呀,累死我了。