Java学习记录(补充三:String类)

String类的基本概念
package day6; import java.util.Arrays;
public class Demo02 { public static void main(String[] args) { //基本数据类型的存储区域在栈中, //每一个数据都是相互独立存在的 // == 比较的是两个数据的大小 int i = 5; int j = 5; System.out.println(i == j); //数组是引用数据类型 //数据占用两块空间, 栈和堆 //栈中存放数组数据在堆中存在的首地址(数组名) //堆里面存放的是数组数据 int []arr1 = new int[2]; arr1[0] = 1; arr1[1] = 2; int []arr2 = new int[2]; arr2[0] = 1; arr2[1] = 2; System.out.println(arr1 == arr2); System.out.println(Arrays.equals(arr1, arr2)); //普通的声明字符串的方法,只会在字符串常量池里开辟空间 //并且开辟空间之前,会检查字符串常量池里是否已经存在相同的数据,如果有, //直接指向已经存在的数据,如果没有 //胡子哎字符串常量池里开辟一个新的空间 String s = "ccy"; String s2 = "ccy"; System.out.println(s == s2); String s3 = new String("jereh"); String s4 = new String("jereh"); System.out.println(s3 == s4); } }

结果图:                                             模型图;

                            

              

 

 

 

equals()方法以及equalsIgnoreCase()方法
package day6; import java.util.Scanner;
public class Demo01 { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.println("请输入用户名:"); String name = scanner.next(); System.out.println("请输入密码:"); String pwd = scanner.next(); if(pwd.length()>=6){ //equals()方法:比较是否相等 equalsIgnoreCase():忽略大小写 if(name.equalsIgnoreCase("Tom")&&pwd.equals("1234567")){ System.out.println("登陆成功"); }else{ System.out.println("用户名或密码不匹配,登录失败!"); } }else{ System.out.println("密码长度不能小于6位!"); } scanner.close();//用完之后最好关掉 } }

 

结果图;

 

String类的concat()方法
package day6;
public class Demo03 { public static void main(String[] args) { // 使用String类的concat()方法:把两个字符串连接构成新的字符串 String s = new String("你好"); String name = new String("张三"); String sentence = s.concat(name); System.out.println(sentence); } }

结果图:

 

String类的split()方法
package day6_2;
public class Test { public static void main(String[] args) { //需在前后两端加上无用字符串,否则会发生错误 //split()用来分割字符串 String s = "爱你, 爱他, 爱我, 爱中国! "; s = " " + s + " "; int length = s.split("").length - 1; System.out.println(length); } }

结果图:

 

 

String类其他方法
package day6;
public class Demo04 { public static void main(String[] args) { String s = "我爱北京天安门!天安门上太阳升!"; //indexOf()获取字符串中某个字符或字符串首次出现的位置 System.out.println(s.indexOf("")); //indexOf()获取字符串中某个字符或字符串最后一次出现的位置 System.out.println(s.lastIndexOf("")); //substring(index)从指定位置(包含)开始截取字符串, 直到最后一个 String newS = s.substring(8); System.out.println(newS); int index = s.indexOf("!"); String newS2 = s.substring(index+1); System.out.println(newS2); //substring(starIndex,endIndex) //从指定索引开始(包含),到指定索引结束(不包含) String newS3 = s.substring(2,4); System.out.println(newS3); //trim():去掉两边的空格 String s2= " 杰 瑞 教 育 "; String newS4 = s2.trim(); System.out.println(newS4); } }

结果图:

StringBuffer类(String类的增强型)
package day6;
public class Demo05 { public static void main(String[] args) { // StringBuffer:String的增强型 (数据频繁发生改变时使用) // append();用来往StringBuffer追加内容 StringBuffer sb = new StringBuffer("青春永恒"); StringBuffer sb1 = sb.append(",我心;永恒"); System.out.println(sb1); StringBuffer sb2 = sb1.append("啊!"); System.out.println(sb2); StringBuffer sb3 = sb2.append("110"); System.out.println(sb3); //String ---> StringBuffer StringBuffer s = new StringBuffer("qwer"); //StringBuffer ---> String String s2 = s.toString(); } }

结果图;

 

StringBuffer的一些方法
package day6;
public class Demo07 { public static void main(String[] args) { StringBuffer buffer = new StringBuffer("abcde"); //append()方法 追加内容 buffer.append("f"); //insert(index,content) buffer.insert(1, "a"); //deleteCharAt()删除指定位置的字符串 buffer.deleteCharAt(0); buffer.delete(1, 3); //reverse() buffer.reverse(); // buffer.replace(1, 3, "oo"); System.out.println(buffer); } }

结果图:

 

练习题(难点:String与StringBuffer之间的转换以及insert()方法的使用)
package day6_2;
public class Goods { String name; String pwd; public Goods(String name, String pwd) { this.name = name; this.pwd = pwd; } public void show() { System.out.println("登陆成功!"); System.out.println("*********欢迎进入商品批发商城*********"); System.out.println("\t编号\t商品\t价格"); System.out.println("\t1\t电风扇\t124.23"); System.out.println("\t2\t洗衣机\t4500.0"); System.out.println("\t3\t电视机\t8000.9"); System.out.println("\t4\t冰箱\t5000.88"); System.out.println("\t5\t空调\t4456.0"); System.out.println("*********************************"); } public String sum(int num1, int num2) { double result = 0; switch (num1) { case 1: result = 124.238 * num2; break; case 2: result = 4500.0 * num2; break; case 3: result = 8000.9 * num2; break; case 4: result = 5000.88 * num2; break; case 5: result = 4456.0 * num2; break; default: break; } String result1 = String.valueOf(result); StringBuffer result2 = new StringBuffer(result1); for (int i = result1.lastIndexOf(".") - 3; i > 0; i = i - 3) { result2.insert(i, ","); } String result3 = result2.toString(); return result3; } }
package day6_2;

import java.util.Scanner;

public class GoodsTest {
    public static void main(String[] args) {
        Scanner scanner = new Scanner(System.in);
        System.out.println("请输入用户名:");
        String name = scanner.next();
        System.out.println("请输入密码:");
        String pwd = scanner.next();
        Goods user = new Goods(name,pwd);
        if (name.equals("TOM")&&pwd.equals("123456")) {
            user.show();
            System.out.println("请输入商品编号:");
            int num1 = scanner.nextInt();
            System.out.println("请输入需要批发的数量");
            int num2 = scanner.nextInt();
            System.out.println(user.sum(num1,num2));
        }else{
            System.out.println("输入信息错误!");
        }
        scanner.close();
    }
}

结果图:

 

posted @ 2017-08-22 17:37  天上一片红  阅读(178)  评论(0编辑  收藏  举报