目录
3.如何忽略大小比较字符串?:使用equalsIgnoreCase方法。
5.练习:定义一个方法,把int数组中的数据按照指定格式拼接成字符串返回
1.API:Appication Programming Interface 应用程序编程接口:别人已经写好的东西,不需要自己编写,拿来用即可
2.在使用Java.lang包(提供利用 Java 编程语言进行程序设计的基础类)中的类的时候,是不需要用import 导包的
3.帮助文档的快速使用:左上角显示-索引-输入框搜索想要的类即可
1.创建字符串的常见方式有哪些?
public class demo1 {
public static void main(String[] args) {
//直接赋值
String str1="gaga";
//根据字符数组创建新的字符串对象
char[] chars={'H','e','l','l','o'};
String str2=new String(chars);
System.out.println("输出由char类型的数组创建出来的字符串:"+str2);
System.out.println("输出数组与字符串的拼接:"+chars);
System.out.print("直接输出数组:");
System.out.println(chars);//这个也是输出字符串
//创建字节数组,根据字节数组的内容创建字符串:根据ascii表把数字换成字符串
//网络中传递信息都是使用字节信息,需要把字节信息进行转换变成字符串,就需要用到这个构造。
byte[] bytes={97,98,99,100,101};
String str3=new String(bytes);
System.out.println("输出由byte类型数组创建出来的字符串"+str3);
}
}
输出:
2.字符串在内存中的储存是怎么样的?
直接赋值的字符串存储在串池中:String Table——JDK7之后,串池就放在了堆内存中。
只要是直接赋值的字符串:如果说已经创建了一个相同的字符串,就不会再去创建新的字符串了!
new出来的数据存储在堆中(串池外)。
public class demo2 {
public static void main(String[] args) {
//以下两个变量是同一个地址
String str1="abc";
String str2="abc";
System.out.println("直接赋值的字符串如果数据相同,则地址也相同:"+(str1==str2));//==号比较的是地址
String str3="abcd";
String str4=new String("abcd");//new 出来的字符串对象不会存储在串池中
System.out.println("字符串中,new出来的数据地址与直接赋值的数据如果一样,地址不会相同:"+(str3==str4));
}
}
输出:
3.如何忽略大小比较字符串?:使用equalsIgnoreCase方法。
public class demo3 {
public static void main(String[] args) {
String s1="ABCDEFG";
System.out.println("abcdefg".equalsIgnoreCase(s1));
}
}
4.如何遍历字符串?:使用charAt方法。
public class demo4 {
public static void main(String[] args) {
String str=new Scanner(System.in).next();
for (int i = 0; i < str.length(); i++) {
System.out.println(str.charAt(i));
}
}
}
5.练习:定义一个方法,把int数组中的数据按照指定格式拼接成字符串返回
//这里我感到疑惑的是,String是定长,如何一个个把数组中的数据加入到String中呢?
//这里使用的是字符串拼接--在串池中表现为创建新的字符串
public class demo5 {
public static void main(String[] args) {
int[] x={1,2,3,4,5,6,7,8,9};
System.out.println(arrayToString(x));
}
public static String arrayToString(int[] x){
if(x.length==0){
return "[]";
}else {
String str="[";
for (int i = 0; i < x.length-1; i++) {
str+=x[i];
str+=", ";
}
str+=x[x.length-1];
str+="]";
return str;
}
}
}
6.练习:反转字符串:使用forr快速生成循环(i --)
public class demo6 {
public static void main(String[] args) {
String str="123456789";
System.out.println(StringReverse(str));
}
public static String StringReverse(String str){
String str1="";
for (int i = str.length()-1; i >= 0; i--) {//这里可以用str.length.forr快速生成
str1+=str.charAt(i);
}
return str1;
}
}
7.练习:int类型的最高七位的 数据转化为中文收据形式
自己写的傻瓜版:
public class demo7 {
public static void main(String[] args) {
int money = 1234567;
String str="";
int number = money % 10;
money /= 10;
str=numberToChinese(number)+"元"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"拾"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"百"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"仟"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"万"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"拾"+str;
number = money % 10;
money /= 10;
str=numberToChinese(number)+"佰"+str;
System.out.println(str);
}
public static String numberToChinese(int number) {
switch (number) {
case 0 -> {
return "零";
}
case 1 -> {
return "壹";
}
case 2 ->{
return "贰";
}
case 3 ->{
return "叁";
}
case 4 ->{
return "肆";
}
case 5 ->{
return "伍";
}
case 6 ->{
return "陆";
}
case 7 ->{
return "柒";
}
case 8 ->{
return "捌";
}
case 9 ->{
return "玖";
}
default -> {
System.out.println("传错数辣");
return null;
}
}
}
}
黑马程序员改进版:
public class demo8 {
public static void main(String[] args) {
int money = 123456;
String str="";
int number;
//这里是把数据先全部提取出来,再处理数据格式
while (money!=0){
number = money % 10;
money /= 10;
str=numberToChinese(number)+str;
}
while (str.length()!=7){
//补齐七位
str="零"+str;
}
//添加单位,这里使用数组更加方便,要学习这种把数据存储在数组中的思想,方便修改
String[] arr={"佰","拾","万","仟","佰","拾","元"};
String answer="";
for (int i = 0; i < str.length(); i++) {
answer+=str.charAt(i);
answer+=arr[i];
}
System.out.println(answer);
}
public static String numberToChinese(int number) {
//这里我原本用的switch,太过于繁杂
String arr[]={"零","壹","贰","叁","肆","伍","陆","柒","捌","玖"};
return arr[number];
}
}
输出:
一些小细节:
1.API:Appication Programming Interface 应用程序编程接口:别人已经写好的东西,不需要自己编写,拿来用即可
2.在使用Java.lang包(提供利用 Java 编程语言进行程序设计的基础类)中的类的时候,是不需要用import 导包的
3.帮助文档的快速使用:左上角显示-索引-输入框搜索想要的类即可
最后的小啰嗦:很长一段时间没更了,在福州和朋友玩了六天,然后回家独居(好像摆了两天。。。),昨天本来想开工的,大拇指被热油烫伤了(我再也不做油炸食品了),而且对锅铲有了一种恐惧感。。。。。。这几天真是把独居能犯的错误都犯了(忘带钥匙找师傅开锁什么的)。
正式重启Java之路!