前言
众所周知,现主流的编程语言都是以英文为计算机所识别,所以当中国程序员想要创建一种,可以操纵中文的,数据类型时,String字符串类型,便有了极大的帮助。
一、字符串是什么?
字符串,String,是一种数据类型。所有被输入法录入的文字,都可以以字符串的数据类型,被电脑所操作。
二、使用方法
1.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开始计数 *输出结果:金钱 */
2.字符串的相关方法
(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 */1. St
indexOf()方法:
a.获取第一次出现的索引
String str = "No war in the world"; int index = str.indexOf("e"); /*从0开始从左往右数,算上空格,字符串中第一个e在12 * 输出结果:12 */1. S
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及其方法的使用,快五千字了,大学生很容易猝死的呀,累死我了。