目录
5.1 String类
5.2连接字符串
5.3获取字符串信息
5.4字符串 *** 作
5.5格式化字符串
5.1 String类
5.1.1 声明字符串
关键字String,字符串必须包含在(“”)中。
String str;
例如:String s;
5.1.2 创建字符串
String 类的构造方法创建对象:
⑴字符数组创建String对象。
String(char a[])
例如:char a[]={'g','o','o','d'};
String s=new String(a);
等价于:String s=new String("good");
⑵截取数组部分创建String对象。
String(char a[],int offset,int length) //offset:开始的位置,length:截取的长度,即截取的字符个数。
例如:char a[]={'s','t','u','d','e','n','t'};
String s=new String(a,2,4);
等价于:String s=new String("uden");
⑶将数组中所有元素连成一个对象。
String(char[] value)
例如:char a={'s','t','u','d','e','n','t'};
String s=new String(a);
等价于:String s=new String("studnt");
字符串常量的引用赋值给一个字符串变量:
⑷
String str1,str2;
str1=“We are students”;
str2=“We are students”;
此时,str1与str2引用相同的字符串常量,因此具有相同的实体。
5.2连接字符串5.2.1连接多个字符串
关键字 +,连接多个运算符并产生一个String对象。
5.2.2连接其他数据类型
如果将其他数据类型与字符串相连,其他数据会直接转成字符串。
5.3获取字符串信息5.3.1获取字符串长度
String.length(); 返回一个int型 //返回的字符串长度包括字符串中的空格。
5.3.2字符串查找
indexOf()和lastIndexOf() 返回一个int型
str.indexOf(s) :在str字符串中搜索目标字符串s。
str.indexOf(s) //返回s在首次出现的位置下标
从字符串str的开始位置搜索s,若没有返回-1。
str.lastIndexOf(s) //返回s在最后一次出现的位置下标
从字符串str结尾处,从右向左搜索s,若没有返回-1。
5.3.3获取指定索引位置的字符
str.charAt(index) //返回一个char型
index:整值型,指定要返回字符的下标。
package Number; public class Ref { public static void main(String[] args) { String str1="We are students"; int size1=str1.length(); //获取字符串长度 System.out.println(size1); int size2=str1.indexOf('e'); //从头查找字符串 System.out.println(size2); int size3=str1.lastIndexOf('e'); //从末尾从右向左查找 System.out.println(size3); char char1=str1.charAt(5); //获取返回str中位置为5的字符 System.out.println("位置为5的字符为"+char1); } }5.4字符串 *** 作
5.4.1获取子字符串
subString()方法,都是利用字符串的下标进行截取,下标是从0开始的。//返回一个字符串
⑴str.subString(int beginIndex)
int beginIndex:指定从某一下标处开始(int型数字)
⑵str.subString(int beginIndex,int endIndex)
int endIndex:指定从某一下标处结束(int型数字),但是不包括该下标对应的字符。
package Number; public class Subs { //5.4.1 public static void main(String[] args) { String str="Hello World"; String substr=str.substring(0,3); //从下标0即H开始,到下标3即第2个l结束,但是不包括第2个l。最终输出:Hel System.out.println(substr); String substr2=str.substring(3); //从下标3,即第2个l开始。最终输出:lo World System.out.println(substr2); } }
5.4.2去除空格
trim()方法,忽略前导空格和尾部空格。 返回一个字符串
str.trm()
package Number; public class Blank { public static void main(String[] args) { String str1=" Java class "; str1.trim(); System.out.println("str1的长度为:"+str1.length()); //输出原来长度 15 System.out.println("str1之后的长度:"+str1.trim().length()); //输出去空格长度11 } }
5.4.3字符串替换
replace()方法,将str中所有指定字符(串)替换成新的字符(串)。 返回字符串
str.replace(char oldChar,char newChar)
oldChar:被替换字符,newChar:新替换字符
package Number; public class Newstr { public static void main(String[] args) { String str1="address"; String str2=str1.replace('a','A'); System.out.println("新的字符为:"+str2); } }
5.4.4判断字符串的开头与结尾
startsWith()和endsWith() 判断字符串是否以指定内容开始或结束。 返回值为boolean型
1.str.startsWith(String prefix)
prefix:作为前缀的字符
2.str.endsWith(String suffix)
suffix:作为后缀的字符
package Number; public class Division { public static void main(String[] args) { String num1="22045612"; String num2="21304578"; boolean bool1=num1.startsWith("22");//num1是否以22开头 boolean bool2=num2.endsWith("78");//num2是否以78结尾 System.out.println("num1是否以22开头"+bool1+","+"num2是否以78结尾"+bool2); } }
5.4.5判断字符串内容是否相等
equals()方法和equalsIgnoreCase()方法 返回值为boolean型
str.equals()方法:区分大小写,equalsIgnoreCase()方法:不区分大小写
package Number; public class Opinion { public static void main(String[] args) { String str1=new String("abc"); String str2=new String("ABC"); String str3=new String("abc"); boolean b1=str1.equals(str2); boolean b2=str1.equalsIgnoreCase(str2); System.out.println(str1+" equals "+str2+" : "+b1); System.out.println(str1+" equalsIgnoreCase "+str3+" : "+b2); } }
5.4.6按照字典顺序比较两个字符串
compareTo()方法 返回值为正负整数和0
str.compareTo(s):按照字典顺序比较字符串中每个字符Unicode值,若str中的字符在s对应字符之前,则比较结果为负数,反之为正数。若相等为0。(即,前面减去后面。参考链接:Java compareTo() 方法 | 菜鸟教程)
package Number; public class WordBook { public static void main(String[] args) { String str1=new String("b"); String str2=new String("c"); String str3=new String("d"); System.out.println("b compareTo c:"+str1.compareTo(str2)); //将str1与str2比较 System.out.println("d compareTo c:"+str3.compareTo(str2)); //将str1与str2比较 } }
5.4.7字母大小写转换
toLowerCase()所有大写改小写,toUpperCae()所有小写改大写。 (数字或非字符不受影响)
str.toLowerCase()
str.toUpperCase()
package Number; public class UpAndLower { public static void main(String[] args) { String str1=new String("abc DEF"); String str2=str1.toLowerCase(); String str3=str1.toUpperCase(); System.out.println(str2); //全部改成小写 System.out.println(str3); //全部改成大写 } }
5.4.8字符串分割
split()方法
str.split(String sign)
String sign:为分割字符串的分割符
str.split(String sign,int limit)
int limit:分割后的份数,n代表分成n份。
package Number; public class Division { public static void main(String[] args) { String str1="192.168.0.1"; String[] FirstArry=str1.split("\."); //按照.进行分割 String[] SecondArry=str1.split("\.",2); //使用.为分隔符,分成2部分,即分割1次 System.out.println("str原来为:"+str1); System.out.print("str按照.全部分割的结果为:"); for(String a:FirstArry){ //使用foreach进行输出 System.out.print("["+a+"]"); } System.out.println(); System.out.print("str按照.进行2次分割的结果为:"); for (String b:SecondArry){ System.out.print("["+b+"]"); } } }5.5格式化字符串
5.5.1日期与时间字符串格式化
5.5.2常规类型格式化
package Number; import java.util.Date; public class eval { public static void main(String[] args) { //5.5.1 Date date=new Date(); //创建Date对象。 String year=String.format("%tY",date); //将date进行格式化。 String month=String.format("%tB",date); String day=String.format("%td",date); String hour=String.format("%tH",date); String minute=String.format("%tM",date); String second=String.format("%tS",date); String time=String.format("%tc",date); String form=String.format("%tF",date); String form1=String.format("%tT",date); System.out.println("现在是"+year+"年"+month+day+"号"+hour+"时"+minute+"分"+second+"秒。"); System.out.println("全部的时间信息为:"+time); System.out.println("年-月-日格式为:"+form+",时:分:秒格式为:"+form1); String str1=String.format("%d",400/2); String str2=String.format("%b",3>5); String str3=String.format("%x",200); System.out.println("400的一半是:"+str1); System.out.println("3>5正确吗?"+str2); System.out.println("200的16进制是:"+str3); } }
5.6使用正则表达式
参考链接:https://www.cnblogs.com/xiaotao520/p/9205720.html
5.7字符串生成器
StringBuilder类代替String类,方便频繁附加字符串。使用StringBuilder最后输出字符串结果用toString()方法。
StringBuilder的3中方法:append(),insert(),delet()方法
str.append(content):从字符串尾追加内容。
str.insert(int offset arg):从start处开始插入。
str.delet(int start,int end):删除从start处开始,到end-1处结束。
package Number; public class Jerque { public static void main(String[] args) { StringBuilder bf=new StringBuilder("hello");//在尾后加入 bf.append("world"); System.out.println(bf.toString()); StringBuilder bf1=new StringBuilder("hello"); bf1.insert(1,"world"); //从1开始即e后面加入world。 System.out.println(bf1.toString()); //通过toString输出 StringBuilder br2=new StringBuilder("StringBuilder"); br2.delete(5,10); //从5g开始到9l处。 System.out.println(br2.toString()); } }
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)