
目录
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条)