Java字符串

Java字符串,第1张

Java字符

目录

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());
    }
}

 

欢迎分享,转载请注明来源:内存溢出

原文地址: https://www.outofmemory.cn/zaji/5672851.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2022-12-16
下一篇 2022-12-16

发表评论

登录后才能评论

评论列表(0条)

保存