java自学基础day9

1.String字符串比较

基本数据类型a比较的是字符串内容。

引用数据类型比较的是字符串的地址。

public static void main(String[] args) {
    String s1="abc";
    String s2=new String("abc");
    System.out.println(s1.equals(s2));
    System.out.println(s1==s2);
    System.out.println(s1.equalsIgnoreCase(s2));
}

equals()要求完全要相同,类型,大小写什么的。

equalsIgnoreCase()不要求大小写一样。<没那么严格>

键盘输入的字符串相当于是new出来的。

2.小练习
2.1(统计各个字符串个数,大写/小写/数字)
import java.util.Scanner;
public class Main {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        System.out.println("请输入一个字符串:");
        String str=sc.next();
        int BigLetter=0;
        int SmallLetter=0;
        int Number=0;
        for (int i = 0; i < str.length(); i++) {
            char c=str.charAt(i);
            if(c>='A'&&c<='Z'){
                BigLetter++;
            } else if (c >= 'a'&&c<='z') {
                SmallLetter++;
            }else{
                Number++;
            }
        }
        System.out.println("大写字母个数:"+BigLetter);
        System.out.println("小写字母个数:"+SmallLetter);
        System.out.println("数字个数:"+Number);
    }
}
2.2(字符串拼接) 

<写代码过程中容易将临界状态遗忘>

//①<暴力解>
        int[] arr = {1, 2, 3};
        System.out.print("[");
        for (int i = 0; i < arr.length-1; i++) {
            System.out.print(arr[i]+",");
        }
        System.out.print(arr[arr.length-1]);
        System.out.print("]");

    }

//写在方法体内

//主函数

int[] arr = {1, 2, 3};
String sc1=concatString(arr);
System.out.println(sc1);

//方法体
public static String concatString(int[] arr){
    if(arr==null){
        return"";
    }
    if(arr.length==0){
        return "[]";
    }
    String str="[";
    for (int i = 0; i < arr.length; i++) {
        if(i<arr.length-1){
        str=str+arr[i]+",";
        }else {
            str=str+arr[i]+"]";
        }
    }
    return str;
}
 2.3(金额转换)

//①暴力解:直接用数学的取余取整方法获取字符串进行拼接

import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //金额转换,将大写数字文字写入数组中,利用索引去数组中取出对应的数字
        System.out.print("请输入金额:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        while (true) {
            if (num > 0 && num < 99999999) {
                break;
            } else {
                System.out.println("输出的金额无效,请重新输入!");
            }
        }
        while (true) {
            int ge = num % 10;
            String c1 = getMoney(ge);
            int shi = num / 10 % 10;
            String c2 = getMoney(shi);
            int bai = num / 100 % 10;
            String c3 = getMoney(bai);
            int qian = num / 1000 % 10;
            String c4 = getMoney(qian);
            int wang = num / 10000 % 10;
            String c5 = getMoney(wang);
            int shiwang = num / 100000 % 10;
            String c6 = getMoney(shiwang);
            int baiwang = num / 1000000 % 10;
            String c7 = getMoney(baiwang);
            System.out.println("大写人民币:" + c7 + "佰" + c6 + "拾" + c5 + "万" + c4 + "仟" + c3 + "佰" + c2 + "拾" + c1 + "元整");
            break;
        }
    }

    //数据之间一一对应的关系
    public static String getMoney(int number) {
        String[] money = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return money[number];
    }

}
//官方解也十分的巧妙,值得学习

import javax.sql.rowset.serial.SQLOutputImpl;
import java.util.Scanner;

public class Main {
    public static void main(String[] args) {
        //1.金额转换,将大写数字文字写入数组中,利用索引去数组中取出对应的数字
        System.out.print("请输入金额:");
        Scanner sc = new Scanner(System.in);
        int num = sc.nextInt();
        while (true) {
            if (num > 0 && num < 99999999) {
                break;
            } else {
                System.out.println("输出的金额无效,请重新输入!");
            }
        }
        //2.将数字转换为大写数字
        String moneyStr = "";
        while (true) {
            int ge = num % 10;
            String capitalNumber = getMoney(ge);
            moneyStr = capitalNumber + moneyStr;
            num = num / 10;
            if (num == 0) {
                break;
            }
        }
        System.out.println(moneyStr);
        //3.补0
        int count = 7 - moneyStr.length();
        for (int i = 0; i < count; i++) {
            moneyStr = "零" + moneyStr;
        }
        System.out.println(moneyStr);
        //4.获取对应数字单位
        String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};
        for (int i = 0; i < moneyStr.length(); i++) {
            char c = moneyStr.charAt(i);
            System.out.print(c + arr[i]);
        }
    }


    //数据之间一一对应的关系
    public static String getMoney(int number) {
        String[] money = {"零", "壹", "贰", "叁", "肆", "伍", "陆", "柒", "捌", "玖"};
        return money[number];
    }

}

String[] arr = {"佰", "拾", "万", "仟", "佰", "拾", "元"};
for (int i = 0; i < moneyStr.length(); i++) {
    char c = moneyStr.charAt(i);
    System.out.print(c + arr[i]);
}
//遍历字符串的核心代码
 3.StringBuilder()知识点

1.number.substring(0,3)函数利用数组进行截断的计数方式,包头不包尾原则。

2.replace("旧值" ,"新值" );

StringBuilder sb=new StringBuilder();
sb.append("hello");        //向容器内部添加字符串
System.out.println(sb);    

String str=sb.toString();    //将容器类型的字符转换为字符串
System.out.println(str);

 sb.append("hello").append("ccc").append("ddd");   //将容器内部的字符进行反转

                                                                                   <abc--->cba>

 StringBuilder()本质是容器,内部的对象可以发生变化。

3.StringJoiner()知识点 <jdk8以后才出现>
//使用方法
StringJoiner sj=new StringJoiner(",(间隔)", "[(开始符号)", "](结束符号)"); 
//添加元素
sj.add("hello").add("world").add("java");
//计算数组长度
int len=sj.length();
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值