String字符串

78 阅读3分钟

String的个人简介

1.在java中String用来表示创建和操作字符串。

2.字符串的内容不会发生改变,它的对象在创建后不能被更改

例如:public class Main {

public static void main(String []args) {

String name="77";

String hobby="喜欢睡觉";

System.out.println(name+hobby);

}

}

在此过程中一共有三个字符串,打印出来的结果是在二者拼接的基础上产生了一个新的字符串,并未对原先创建的内容造成改变

3.创建String对象的两种方式

1直接赋值

String name="77";

2使用构造方法,例如:

public String()创建空白字符串
public String (String a)根据传入字符串,创建字符串对象
public String (char[]chs)根据字符数组,创建字符串对象

需要注意的是,当使用第一种创建方式直接赋值的时候,如果该字符串内容已经存在,会继续复用上次的创建。如果不存在,则会创建新的字符串。

字符串的操作

在api中可以查看所有关于String类的方法

微信图片_20240314133014.png

微信图片_202403141330141.png

微信图片_202403141330142.png

微信图片_202403141330143.png 这些方法可以帮助更方便的操作字符串 在使用StringBuilder之后,会使得对字符串的操作更加快捷

接下来是一个小练习,把用户输入的七位数字转换成汉字大写

例如778899转换成:零佰柒拾柒万捌仟捌佰玖拾玖元。

大概思路是先接收用户输入的数字,然后进行判断数字是否在合理范围内,如果在,对输入的数字进行赋值。如果不在,提示输入有误。

Scanner sc=new Scanner(System.in);
int money;
while (true) {
    System.out.println("请输入金额");
     money=sc.nextInt();
    if (money>=0&&money<=9999999){
        break;
    }else {
        System.out.println("输入金额范围有误,请重新输入");
    }
}
/*在循环中对个位进行取余,添加方法找到对应的大写汉字,然后得到剩下的数字,当剩下的数字被取完,break跳出循环*/
while (true) {
    int ge=money%10;
    String capitaNumber=getBig(ge);
    moneystr=capitaNumber+moneystr;
    money=money/10;
    if (money==0){
        break;
    }
}

public static String getBig(int number){
    String[]big={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
    return big[number];
}
/*接下来就是要思考进行补位,把不够七位数字的前面补上零,凑够七位,要补充的零的个数就是7-刚刚获取到大写字符串的长度*/
int count=7-moneystr.length();
for (int i = 0; i < count; i++) {
    moneystr="零"+moneystr;
}
/*补位后就是最后一步,插入单位,形成完整的结果
首先就是要定义一个单位字符串的数组,然后对刚刚的插入零后的结果进行遍历,和每一个单位进行拼接,最后进行打印就是最终结果。


最后是完整的代码

import java.util.Scanner;

public class jinezhuanhuanTest {
    public static void main(String[] args) {
        Scanner sc=new Scanner(System.in);
        int money;
        while (true) {
            System.out.println("请输入金额");
             money=sc.nextInt();
            if (money>=0&&money<=9999999){
                break;
            }else {
                System.out.println("输入金额范围有误,请重新输入");
            }
        }
        String moneystr="";
        while (true) {
            int ge=money%10;
            String capitaNumber=getBig(ge);
            moneystr=capitaNumber+moneystr;
            money=money/10;
            if (money==0){
                break;
            }
        }
        int count=7-moneystr.length();
        for (int i = 0; i < count; i++) {
            moneystr="零"+moneystr;
        }
        System.out.println(moneystr);
        String[]arr={"佰","拾","万","仟","佰","拾","元"};
        String result="";
        for (int i = 0; i < moneystr.length(); i++) {
           char c=moneystr.charAt(i);
           result+=c+arr[i];
        }
        System.out.println(result);
    }
    public static String getBig(int number){
        String[]big={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
        return big[number];
    }
}
```

因为没有StringBuilder所以部分操作显得略微繁琐,因为我还没有学到这个