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();