Java 字符串

字符串

String类:字符串是由多个字符组成的一串数据(字符序列)的字符串常量,值改变后会重新创建一个新的对象
其结构为:
public final class String extends Object implements Serializable, Comparable, CharSequence
构造方法

import java.io.UnsupportedEncodingException;
import java.nio.charset.Charset;
import java.util.Arrays;

public class String_Dome1 {
    /*
    字符串的构造方法:1.new String()
     */
    public static void main(String[] args) throws UnsupportedEncodingException {
        String str1 = new String();//创建一个String对象,默认为空;
        System.out.println(str1);
        String str2 = new String("abc");//创建一个String对象,并为其赋值
        System.out.println(str2);
        char []ch1 = {'a','b','c','d','e'};
        String str3 = new String(ch1);//将一个char数组转化为String类型
        System.out.println(str3);
        String str4 = new String(ch1,0,4);//将一个char数组内的元素,指定起始位置(offset),指定数量(count),转换为字符串类型
        System.out.println(str4);
        String str5 = new String("abc");
        System.out.println(Arrays.toString(str5.getBytes("utf-8")));//将字符串转化为字节类型,编码,指定编码表为utf-8
        byte[] by = str5.getBytes("utf-8");
        String str6 = new String(by,"utf-8");//解码,将字节码zhaung
        System.out.println(str6);
    }
}

判断功能

public class String_Dome2 {
    public static void main(String[] args) {
        /*
                    判断功能
            boolean equals(Object obj)
            boolean equalsIgnoreCase(String str)
            boolean contains(String str)
            boolean isEmpty()
            boolean startsWith(String prefix)
            boolean endsWith(String suffix)

         */
        String str1 = "abcdefgh";
        String str2 = new String("abcdefgh");
        String str3 = new String("abcDefgH");
        System.out.println(str1 == str2);
        //判断字符串的地址是否相等
        System.out.println(str1.equals(str2));
        //判断字符串的值是否相等
        System.out.println(str1.equalsIgnoreCase(str3));
        //判断字符串的值是否相等,不区分大小写
        System.out.println(str1.contains("abc"));
        //判断字符串是否包含"abc";
        System.out.println("".isEmpty());
        //判断字符串是否为空
        System.out.println(str1.startsWith("abcd"));
        //判断字符串是否以"abcd"开头
        System.out.println(str1.endsWith("fgh"));
        //判断字符串是否以"fgh"结尾
    }
}

获取功能

public class String_Dome3 {
    /*
          获取功能
        int length()
        char charAt(int index)
        int indexOf(String str)
        int indexOf(String str,int fromIndex)
        String substring(int start)
        String substring(int start,int end)
     */
    public static void main(String[] args) {

    String str1 = new String("abcdefabcd");
    //                               0123456789
        System.out.println(str1.length());
        //获取字符串的长度(注意字符串和数组获取长度的方式,数组是调用属性使用的是length,字符串调用的则是方法使用的是length())
        System.out.println(str1.charAt(6));
        //输入字符串的索引值,返回该索引值对应的字符
        System.out.println(str1.indexOf("a"));
        //查找字符串指定字符在该字符串第一次出现的索引值
        System.out.println(str1.indexOf("a",str1.indexOf("a")+1));
        //指定字符串起始位置,返回其位置之后要查找的字符的索引值
        System.out.println(str1.lastIndexOf("a"));
        //倒叙查找元素,返回其索引值
        System.out.println(str1.substring(6));
        //字符串的拼接
        System.out.println(str1.substring(1,6));
        //输出一个新的字符串,指定区间
    }
}

转换功能

import java.io.UnsupportedEncodingException;
import java.util.Arrays;

public class String_Dome4 {
//    转换功能
//    byte[] getBytes()
//    char[] toCharArray()
//    static String valueOf(char[] chs)
//    String toLowerCase()
//    String toUpperCase()
//    String concat(String str)
//    Stirng[] split(分割符);
    public static void main(String[] args) {
        String str1 = new String("abc");
        try {
            System.out.println(Arrays.toString(str1.getBytes("utf8")));
        } catch (UnsupportedEncodingException e) {
            e.printStackTrace();
        }
        //将字符串转化为字节类型,编码,指定编码表为utf-8
        String str2 = new String("abcd");
        System.out.println(Arrays.toString(str2.toCharArray()));
        //将字符串转化为字符数组
        char [] ch = {'a','b','c','d'};
        System.out.println(String.valueOf(ch));
        //将字符数组转化为字符串
        String str3 = new String("AbCdEf");
        System.out.println(str3.toLowerCase());
        //将字符串全部转化为小写,储存在新的字符串中
        System.out.println(str3.toUpperCase());
        //将字符串全部转化为大写,储存在新的字符串中
        System.out.println(str1.concat(str2));
        //将两个字符串拼接起来
        System.out.println(str1+str2+str3);
        //将多个字符串拼接起来
        String str4 = "a:b:c:d";
        String []arrStr = str4.split(":");
        //将字符串以”:“分割,并储蓄在一个新的字符数组里面
        System.out.println(Arrays.toString(arrStr));
        String str5 = "sd455ff5f4s5as4";
        String []arrStr1 = str5.split("\\d");
        System.out.println(Arrays.toString(arrStr1));
        //将字符串以int型变量分割,并储蓄在一个新的字符数组里面
    }
}

替换功能


public class String_Dome5 {
    public static void main(String[] args) {
//        替换功能
//        String replace(char old,char new)
//        String replace(String old,String new)
//        replaceAll(String regex, String replacement)
//        replaceFirst(String regex, String replacement)
//        去除字符串两空格
//        String trim()
        String str1 = "abcdefgabab";
        String new_Str1 = str1.replace('a','A');
        System.out.println(new_Str1);
        //将字符串中所有的'a'用‘A‘替换,字符替换
        String new_str2 = str1.replace("ab","AB");
        System.out.println(new_str2);
        //将字符串中所有的'ab'用'AB'替换,字符串替换
        String str2 = "a2dds5ds6d5";
        String new_str3 = str2.replaceAll("\\d",":");
        System.out.println(new_str3);
        //将字符串中所有的int常量用';'替换,正则表达式替换
        String new_str4 = str2.replaceFirst("\\d",":");
        System.out.println(new_str4);
        //将字符串中第一个的int常量用';'替换,正则表达式替换
        String str3 = "  abc d";
        String new_str5 = str3.trim();
        System.out.println(new_str5);
        System.out.println(new_str5.length());
        //去掉字符串首尾的空格
        String new_str6 = str3.replace(" ","");
        System.out.println(new_str6);
        System.out.println(new_str6.length());
        //去掉字符串中所有的空格
    }
}

正则表达式

public class String_RE {
    /*
    正则表达式
     */
    public static void main(String[] args) {
        String str = "156468";
        String str1 = "1";
        String str2 = "624";
        System.out.println(str1.matches("1"));
        //匹配数字是否为"1";
        System.out.println(str1.matches("\\d"));
        //匹配一位数字0-9;
        System.out.println(str.matches("\\d{6}"));
        //匹配0到6次数字0-9;
        System.out.println(str.matches("\\d{3,4}"));
        //匹配3到4次数字0-9
        System.out.println(str2.matches("[6,9][2,3][4,7]"));
        //匹配数字每位数字是否在对应的该数组之中
        System.out.println(str.matches("\\d*"));
        //匹配0次或多次数字0-9
        System.out.println(str.matches("\\d+"));
        //匹配一次或多次数字0-9
        /**
         * 输入电话号码看是否符合中国大陆的标准电话号码规格
         */
        Scanner scanner = new Scanner(System.in);
        int count = 1;
        while (count <= 5) {
            System.out.println("请输入号码:");
            String ph_num = scanner.next();

            if (ph_num.matches("[1][35789]\\d{9}")) {
                System.out.println("输入正确!");
                break;
            } else {
                System.out.println("输入的电话号码有误!!!");
                count++;
            }
        }
    }
}
import java.util.Scanner;

public class String_RE1 {

    public static void main(String[] args) {
        String str = "abc12Ab";
        String str1 = "   ";
        System.out.println(str.matches("[A-z0-9]*"));
        System.out.println(str.matches("\\w*"));
        //匹配0到多次大小写字母与数字
        System.out.println(str1.matches("\\s*"));
        //匹配0到多次空白字符
        System.out.println(str.matches("\\S*"));
        //匹配0到多次非空白字符
        System.out.println(str.matches("\\D*"));
        //匹配0到多次非数字字符
        /**
         * 判断邮箱输入规则
         */
        Scanner scanner = new Scanner(System.in);
        int count = 1;
        while (count <= 5) {
            System.out.println("请输入邮箱:");
            String ph_num = scanner.next();

            if (ph_num.matches("\\w{6,17}@(\\w{2,6}\\.(com|com\\.cn))")) {
                System.out.println("输入正确!");
                break;
            } else {
                System.out.println("输入的邮箱账号有误!!!");
                count++;
            }
        }
    }

}

StringBuffer与StringBuilder

import com.play.Stringbuffer;

public class StringBuffer_Dome {
    public static void main(String[] args) {
        StringBuffer strbuf  = new StringBuffer();
        //默认为 16个char字符的大小,且StringBuffer的定义只能创建对象来实现
        StringBuffer strbuf1 = new StringBuffer("abc");
        strbuf1.append(1);
        System.out.println(strbuf1);
        //向strbuf1的末尾添加一个int型的1;且操作的是strbuf1这个字符串,并没有生成新的数组
        strbuf1.append("ABC");
        System.out.println(strbuf1);
        //向strbuf1末尾添加一个字符串”ABC“;
        strbuf1.insert(1,"XXXX");
        System.out.println(strbuf1);
        //向strbuf1字符串索引为1后面添加一个字符串
        strbuf1.deleteCharAt(5);
        System.out.println(strbuf1);
        //删除strbuf1索引下标为5的元素
        strbuf1.delete(1,5);
        System.out.println(strbuf1);
        //删除字符串区间,包含起始位置,不包括结束位置
        strbuf1.replace(0,3,"AAA");
        System.out.println(strbuf1);
        //替换字符串区间包,含起始位置,不包括结束位置
        System.out.println(strbuf1.substring(0,4));
        System.out.println(strbuf1);
        //截取字符串区间,截取部分生成一个新的字符串
         }
}
public class StringBuilder_Dome {
    /*
    String             值不可变
    StringBuffer       值不可变   多线程安全
    StringBuilder      值不可变   多线程不安全
     */
    public static void main(String[] args) {
        StringBuilder strbuf  = new StringBuilder();
        //默认为 16个char字符的大小,且StringBuilder的定义只能创建对象来实现
        StringBuilder strbuf1 = new StringBuilder("abc");
        strbuf1.append(1);
        System.out.println(strbuf1);
        //向strbuf1的末尾添加一个int型的1;且操作的是strbuf1这个字符串,并没有生成新的数组
        strbuf1.append("ABC");
        System.out.println(strbuf1);
        //向strbuf1末尾添加一个字符串”ABC“;
        strbuf1.insert(1,"XXXX");
        System.out.println(strbuf1);
        //向strbuf1字符串索引为1后面添加一个字符串
        strbuf1.deleteCharAt(5);
        System.out.println(strbuf1);
        //删除strbuf1索引下标为5的元素
        strbuf1.delete(1,5);
        System.out.println(strbuf1);
        //删除字符串区间,包含起始位置,不包括结束位置
        strbuf1.replace(0,3,"AAA");
        System.out.println(strbuf1);
        //替换字符串区间包,含起始位置,不包括结束位置
        System.out.println(strbuf1.substring(0,4));
        System.out.println(strbuf1);
        //截取字符串区间,截取部分生成一个新的字符串
    }
}
  • 4
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值