java【String类的常用方法】

String类

  • String类的常用方法
    • 1 字符串的构造方法
    • 2 String对象的比较
    • 3 字符串查找
    • 4 字符串与其他类型的转换
      • 4.1 字符串和数值互相转换
      • 4.2 大小写转换
      • 4.3 字符串转数组
      • 4.4 字符串格式化
    • 5 字符串的替换
    • 6 字符串的截取操作
    • 7 字符串的拆分
    • 8 字符串去除空格trim()方法

String类的常用方法

1 字符串的构造方法

字符串仍然是类,字符串对象的产生有如下四种方式:

  • 直接赋值
    String类独有:“ ” 字符串常量,每个字符串常量其实都是一个字符串对象
String str="abc";
  • 通过字符串的构造方法产生字符串对象
String str1=new String("abc");
  • 字符数组转为字符类对象
    任何一门高级语言,字符串的内部其实都是字符数组
char[] data={'a','b','c'};
String str2=new String(data);
  • 调用字符串的静态方法valueOf
String str3=String.valueOf("abc");

2 String对象的比较

(1)==操作符比较的是两个字符串对象是否指向相同的地址
(2)equals方法判断两个字符串对象内容是否相同。
按照Unicode编码将字符逐个比较,当两个字符串的字符数组对应的内容完全相同,equals才返回true(区分大小写的比较)。equalssIngoreCase方法不区分大小写。
(3)compareTo方法进行两个字符串的大小比较
a. 先按照两个字符串对应的字符进行编码比较,若碰到第一个不相等的字符,直接返回编码差值。
b. 若前k个字符完全相等(k是两个字符串中的最小值),返回值为两个字符串的长度差。
c.compareToIngoreCase()不区分大小写。

3 字符串查找

字符串的查找,本质上就是在内部的字符数组上进行遍历查找。

  • char charAt(int index):返回字符串上指定索引位置的字符,注意索引的合法性[0,n)
    eg:** 定义一个方法,判断传入的字符是否是由纯数字组成**?
    思路:循环遍历+charAt()取出字符判断,如果字符‘0’,则为数字字符。
    character.isDigit();方法也可以判断是否是数字。
    代码:
 public static boolean isNum(String str)
    {
        for (int i = 0; i < str.length(); i++) {
            char c=str.charAt(i);
//            if(c<'0'||c>'9')
//            {
//                return false;
//            }
		//JDk,包装类Character判断是否是纯数字
            if(Character.isDigit(c))
            {
                return false;
            }
        }
        return true;
    }
  • boolean contains(String regex):查找当前字符串中是否包含指定格式的字符串regex
    contains方法其实就是根据indexOf方法的返回值来实现的。
    从前往后找:
    int indexOf(int ch);返回ch第一次出现的位置,没有返回-1
    int indexOf(int ch,int fromIndex);从fromIndex位置开始找ch第一次出现的位置,没有返回-1
    int indexOf(String str);返回str第一次出现的位置,没有返回-1
    int indexOf(String str,int fromIndex);从fromIndex位置开始找str第一次出现的位置,没有返回-1
    从后往前找:int lastIndexOf();

4 字符串与其他类型的转换

4.1 字符串和数值互相转换

无论什么类型转为字符串对象,统一推荐使用String.valueOf(任意类型),当传入的是自定义类型时,默认会调用toString进行转换,要求我们在自定义类型中覆写toString方法。

//将任意的数值转换字符串,采用字符串的几种构造方式,推荐采用字符串的valueOf方法
//int-->str
String str=String.valueOf(1234);
//double->str
String str1=String.valueOf(12.34);
//boolean
String str2=String.valueOf(false);
//自定义类型转为字符串,调用toString方法(需要覆写)
String str3=String.valueOf(new Student("66",1));

将字符串对象转为相应的基本类型:使用各个包装类的parseXXX方法来进行转换,这个转换当字符串中出现非数字时会报错。

        int a=Integer.parseInt(str);
        double b=Double.parseDouble(str1);
        boolean c=Boolean.parseBoolean(str2);
        System.out.println(a);
        System.out.println(b);
        System.out.println(c);

java【String类的常用方法】_第1张图片

只要不是合法的布尔值,统一都会转为false

java【String类的常用方法】_第2张图片

4.2 大小写转换

对应英文,不包含中文

public static void lowerOrUpper()
    {
        String s1="hello";
        String s2="HELLO";
        //转大写
        System.out.println(s1.toUpperCase());
        //转小写
        System.out.println(s2.toLowerCase());
    }

4.3 字符串转数组

1. 字符串转字符数组:str–>char[ ]
方法:toCharArray()

public static void str2Arr()
    {
        String str="hello";
        char[] c=str.toCharArray();
        for (int i = 0; i < c.length; i++) {
            System.out.print(c[i]+" ");
        }
    }

2. 字符串转字节数组:str–>byte[ ]
方法:getByte() 按照当前系统默认编码转为字节数组
当进行网络编程或者文件IO操作,需要将字符串序列化为字节流

public static void str2Arr()
    {
        String str="hello";
		//默认UTF-8
        byte[] ch=str.getBytes();
        //传入编码规则
        byte[] ch=str.getBytes(StandardCharsets.UTF-8);
        for (int i = 0; i < ch.length; i++) {
            System.out.print(ch[i]+" ");
        }
    }

java【String类的常用方法】_第3张图片

编码:将任意字符按照指定的规则转为数字就称为编码
比较常用的编码规则:
ASCII:专门针对英文字母的编码,‘a’–>97,不管哪种编码格式,针对英文字母的转换都会采用ASCII的转换规则
GBK:专门针对中文的编码,包含繁体中文,一个中文对应两个字节
GB2312:只包含简体中文
UTF-8:世界上所有语言都可以用UTF-8来得到转换,一个中文字符转为三个字节

byte[] ch=str1.getBytes(StandardCharsets.UTF_8);

4.4 字符串格式化

类似printf的格式化输出,只不过此时不输出,只是将字符串按照指定格式转换:String.format(格式);

String str=String.format("%d-%d-%02d",2022,11,02);
System.out.println(str);

5 字符串的替换

String repalaceAll(String regex,String replacecment):替换所有的指定内容

String replaceFirst(String regex,String replacement):替换首个内容

6 字符串的截取操作

String substring(int beginIndex):从指定索引截取到结尾[start,end)

String substring(int index,int endIndex):截取部分内容[start,end)

	//传入任意单词将其首字母转为大写
    public static String firstUpperCase(String str)
    {
        //拿到首字母,将其转为大写之后和其他字符串进行拼接
        return str.substring(0,1).toUpperCase()+str.substring(1);
    }

7 字符串的拆分

String[] spilt(String regex):将字符串全部拆分(按照regex的格式进行拆分)
String[] spilt(String regex,int limit):将字符串以指定的格式,拆分为limit组(从头开始拆分到限定组后结束拆分)
举例:拆分一个IP地址,根据IP地址来判断用户的区域

String str="132.168.1.1";
//String[] ret=str.spilt(".");
String[] ret=str.spilt("\\.");
for(String s:ret)
{
System.out.println(s+" ");
}

结果无输出,因为操作符在Java中属于特殊字符。例如**引用操作符此类的字符都需要进行转义\ **

8 字符串去除空格trim()方法

默认只能去掉字符串左右空格,中间的空格保留

“ hello world ”=>"hello world"

使用replaceAll()将所有空格去除

你可能感兴趣的:(java,java,开发语言,数学建模)