java常用类Day7

String类常用方法(3)

  • public String replace(char oldChar,char newChar):将旧字符替换成新字符串
  • public String[] split(String str):根据str做拆分
import java.lang.reflect.Array;
import java.util.Arrays;

public class Demo01 {
    public static void main(String[] args) {
        String name="hello";//“hello“常量存储在字符串池中
        name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生
        String name2="更生";//这里是共享的
        System.out.println(name==name2);//true

        //字符串的另一种创建方式
        String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间
        String str2 = new String("java");
        System.out.println(str==str2);//两个地址是不一样的
        System.out.println(str.equals(str2));//这时候比的是数据

        System.out.println("======================字符串方法的使用1===========================");
        //字符串方法的使用
        //1.length();返回字符串的长度
        //2.charAt(int index):返回某个位置的字符
        //3.contains(String str):判断是否包含某个字符串

        String content="java 是世界上最好的语言,java真香";//空格也算一个字符
        System.out.println(content.length());
        System.out.println(content.charAt(0));//打印第一个字符
        System.out.println(content.charAt(content.length()-1));//打印最后一个字符
        System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符
        System.out.println(content.contains("java"));
        System.out.println(content.contains("php"));
        System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的
        System.out.println(content.contains("j"+"v"));//即使这样写也是不行的

        System.out.println("======================字符串方法的使用2===========================");
        //字符串的方法使用
        //4.toCharArray();返回字符串对应的数组
        //5.indexOf();返回子字符串首次出现的位置
        //6.lastIndexOf();返回字符串最后一次出现的位置
        System.out.println(content);
        System.out.println(content.toCharArray());//Q:输出为什么和上面是一样的
        System.out.println(Arrays.toString(content.toCharArray()));//打印出来的是数组本身
        System.out.println(content.indexOf("java"));//只会找第一个出现的
        System.out.println(content.indexOf("java",4));//从第四个字符开始找java,输出是15,因为是从0开始计的
        System.out.println(content.lastIndexOf("java"));//找的是最后一个,但还是从0开始计来打印出他的序数
        
        System.out.println("======================字符串方法的使用3===========================");
        //7.trim();去掉字符串前后的空格
        //8.toUpperCase();把小写转成大写    toLowerCase();把大写转成小写
        //9.endWith(str);判断是否以str结尾    startWith(str);判断是否以str开头
        String content2="   hello world   ";
        System.out.println(content2.trim());//前后空格没有了,但中间还会有
        System.out.println(content2.toUpperCases());
        System.out.println(content2.toLowerCase());
        String filename="hello.java";
        System.out.println(filename.endsWith(".java"));//存疑:到底是end还是ends
        System.out.println(filename.startsWith("hello"));
        
        System.out.println("======================字符串方法的使用4===========================");
        //10.replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
        //11.split();对字符串进行拆分
        System.out.println(content.replace("java","php"));
        String say="java is the best   programing language,java xiang";
        //String[] arr=say.split(" ");//可以发现空格被拆分开来了,但是逗号并未拆
        //String[] arr=say.split("[ ,]");//这样就表示可以用空格或逗号拆分开,但是如果多写了空格或逗号会把多余的也当字符做拆分处理
        String[] arr=say.split("[ ,]+");//加个+表示空格或逗号可以出现一个或多个 
        System.out.println(arr.length);
        for(String string:arr){
            System.out.println(string);
        }
    }
}

输出结果为

php 是世界上最好的语言,php真香
8
java
is
the
best
programing
language
java
xiang

“[ ,]+” 这样就表示可以用空格或逗号拆分开,并可以连续出现一个或多个

import java.lang.reflect.Array;
import java.util.Arrays;

public class Demo01 {
    public static void main(String[] args) {
        String name="hello";//“hello“常量存储在字符串池中
        name="更生";//并没有去改变hello的值,而是在字符串池重新开辟了一片空间“更生”,然后name从指向hello变成指向更生
        String name2="更生";//这里是共享的
        System.out.println(name==name2);//true

        //字符串的另一种创建方式
        String str=new String("java");//会指向堆里的java对象,事实上两个会合并到一个,所以用这种方式会浪费空间
        String str2 = new String("java");
        System.out.println(str==str2);//两个地址是不一样的
        System.out.println(str.equals(str2));//这时候比的是数据

        System.out.println("======================字符串方法的使用1===========================");
        //字符串方法的使用
        //1.length();返回字符串的长度
        //2.charAt(int index):返回某个位置的字符
        //3.contains(String str):判断是否包含某个字符串

        String content="java 是世界上最好的语言,java真香";//空格也算一个字符
        System.out.println(content.length());
        System.out.println(content.charAt(0));//打印第一个字符
        System.out.println(content.charAt(content.length()-1));//打印最后一个字符
        System.out.println(content.charAt(content.length()-2));//打印倒数第二个字符
        System.out.println(content.contains("java"));
        System.out.println(content.contains("php"));
        System.out.println(content.contains("jv"));//被隔开的字符串是无法检测到的
        System.out.println(content.contains("j"+"v"));//即使这样写也是不行的

        System.out.println("======================字符串方法的使用2===========================");
        //字符串的方法使用
        //4.toCharArray();返回字符串对应的数组
        //5.indexOf();返回子字符串首次出现的位置
        //6.lastIndexOf();返回字符串最后一次出现的位置
        System.out.println(content);
        System.out.println(content.toCharArray());//Q:输出为什么和上面是一样的
        System.out.println(Arrays.toString(content.toCharArray()));//打印出来的是数组本身
        System.out.println(content.indexOf("java"));//只会找第一个出现的
        System.out.println(content.indexOf("java",4));//从第四个字符开始找java,输出是15,因为是从0开始计的
        System.out.println(content.lastIndexOf("java"));//找的是最后一个,但还是从0开始计来打印出他的序数
        
        System.out.println("======================字符串方法的使用3===========================");
        //7.trim();去掉字符串前后的空格
        //8.toUpperCase();把小写转成大写    toLowerCase();把大写转成小写
        //9.endWith(str);判断是否以str结尾    startWith(str);判断是否以str开头
        String content2="   hello world   ";
        System.out.println(content2.trim());//前后空格没有了,但中间还会有
        System.out.println(content2.toUpperCases());
        System.out.println(content2.toLowerCase());
        String filename="hello.java";
        System.out.println(filename.endsWith(".java"));//存疑:到底是end还是ends
        System.out.println(filename.startsWith("hello"));
        
        System.out.println("======================字符串方法的使用4===========================");
        //10.replace(char old,char new);用新的字符或字符串替换旧的字符或字符串
        //11.split();对字符串进行拆分
        System.out.println(content.replace("java","php"));
        String say="java is the best   programing language,java xiang";
        String[] arr=say.split(" ");//可以发现空格被拆分开来了,但是逗号并未拆
        //String[] arr=say.split("[ ,]");//这样就表示可以用空格或逗号拆分开,但是如果多写了空格或逗号会把多余的也当字符做拆分处理
        //String[] arr=say.split("[ ,]+");//加个+表示空格或逗号可以出现一个或多个 
        System.out.println(arr.length);
        for(String string:arr){
            System.out.println(string);
        }
        
        System.out.println("======================补充===========================");
        //补充两个方法equals、compareTo();
        //equals:比较两个字符串值是否相同
        //compareTo:比较两个字符串的大小(比较的是在编码表里的位置)
        String s1="hello";
        String s2="HELLO";
        System.out.println(s1.equals(s2));//false 
        System.out.println(s1.equalsIgnoreCase(s2));//忽略大小写的比较
        
        String s3="abc";//a:97
        String s4="xyz";//x:120
        System.out.println(s3.compareTo(s4));//他会一个字符一个字符比较,先比a与x,若是能比出结果,后面就不比了,若相等,则比较第二个,以此类推。此例中a97,x120,97-120=-23,所以结果为-23,即s3的位置减去s4的位置     (也可以比较中文)
        String s5="abc";
        String s6="abcxyz";
        System.out.println(s5.compareTo(s6));//这时候比较的就不是位置了,而是长度,s5的长度为3,s6的长度为6,所以输出结果为3-6=-3。要是两个一样,比如都是“abc”,那么得出结果就为3-3=0
    }
}

输出结果为

false
true
-23
-3

compareTo:比较两个字符串在编码表里的位置,且为一个一个比较知道得出结果,会用前-后作为结果输出。特殊情况下会比较长度

String类案例演示

  • 需求:
    • 已知String str=“this is a text”
      1. 将str中的单词单独获取出来
      2. 将str中的text替换为practice
      3. 在text前面插入一个easy
      4. 将每个单词的首字母改为大写
/*
已知String str=“this is a text”

1. 将str中的单词单独获取出来
2. 将str中的text替换为practice
3. 在text前面插入一个easy
4. 将每个单词的首字母改为大写
 */
public class Demo03 {
    public static void main(String[] args) {
        String str = "this is a text";
        
        //1.将str中的单词单独获取出来
        String[]arr=str.split(" ");
        System.out.println("=============将str中的单词单独提取出来===============");
        for(String s:arr){
            System.out.println(s);
        }
        
        //2.将str中的text替换为practice
        System.out.println("=============将str中的text替换为practice===========");
        String str2=str.replace("text","practice");
        System.out.println(str2);
        
        //3.在text前面插入一个easy
        System.out.println("=============在text前面插入一个easy=================");
        String str3=str.replace("text","easy text");
        System.out.println(str3);
        
        //4.将每个单词的首字母改为大写
        System.out.println("=============将每个单词的首字母改为大写===============");
        for (int i = 0; i < arr.length; i++) {
            char first=arr[i].charAt(0);
            char upperfirst=Character.toUpperCase(first);
            String news=upperfirst+arr[i].substring(1);
            System.out.println(news);
        }
    }
}

输出结果为

=============将str中的单词单独提取出来===============
this
is
a
text
=============将str中的text替换为practice===========
this is a practice
=============在text前面插入一个easy=================
this is a easy text
=============将每个单词的首字母改为大写===============
This
Is
A
Text
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值