目录

  • 1 初识Java
    • 1.1 Java是什么?
    • 1.2 如何搭建Java开发环境?
    • 1.3 如何编写java应用程序?
    • 1.4 代码如何注释?
  • 2 Java语法基础
    • 2.1 章节导引-BMI体重计算器
    • 2.2 Java变量与数据类型
    • 2.3 Java运算符
    • 2.4 数据类型转换
    • 2.5 控制台输入输出
    • 2.6 Java数学
  • 3 选择结构
    • 3.1 章节导引-BMI健康报告
    • 3.2 简单选择结构
    • 3.3 复杂选择结构
    • 3.4 选择结构嵌套
  • 4 循环结构
    • 4.1 章节导引-猜数字游戏
    • 4.2 while循环
    • 4.3 do...while循环
    • 4.4 for循环
    • 4.5 循环语句跳转
    • 4.6 多重循环
    • 4.7 猜数字最终版
  • 5 数组
    • 5.1 章节导引-客户积分奖励
    • 5.2 一维数组
    • 5.3 最大值与排序
    • 5.4 foreach访问数组
    • 5.5 二维数组
    • 5.6 循环嵌套
    • 5.7 客户积分奖励
  • 6 字符串
    • 6.1 章节导引-登录注册
    • 6.2 String类
    • 6.3 StringBuffer类
  • 7 面向对象入门
    • 7.1 章节导引-客户积分奖励升级
    • 7.2 类和对象基础
    • 7.3 类的无参方法
    • 7.4 类的有参方法
String类

字符串String类

一、无处不在字符串

二、字符串长度

String类提供了length()方法,确定字符串的长度 

举例:(用户注册)

public class Register {

    public static void main(String[ ] args) {

        Scanner input = new Scanner(System.in);

        String uname,pwd;

        System.out.print("请输入用户名: ");

        uname=input.next();

        System.out.print("请输入密码: ");

        pwd=input.next();

        if( pwd.length()>=6 ){     //判断密码的长度

        System.out.print("注册成功! ");

    }else{

        System.out.print("密码长度不能小于6位!");

    }

}

}

三、字符串提取

1.常用字符串提取方法 indexOf()


返回出现第一个匹配的位置,如果没有找到字符或字符串,则返回-1

2.常用字符串提取方法subString()


beginindex: 字符串的位置从0开始算;endindex: 字符串的位置从1开始算 


试一试:

如果要打印输出“小鱼儿”,在1 和 2处应填入的代码是什么?

String word = "Hello,      ";

word = word.trim();

String s = word.concat("小鱼儿!");

int index1 = s.indexOf(',');

int index2 = s.indexOf('!');

System.out.println(s.substring(___1___, ___2____));



四、字符串比较

字符串比较String类提供了equals( )方法,比较存储在两个字符串对象的内容是否一致。


举例:登录

public class Login {

    public static void main(String[] args) {

        Scanner input = new Scanner(System.in);

        String uname,pwd;

        System.out.print("请输入用户名: ");

        uname=input.next();

        System.out.print("请输入密码: ");

        pwd=input.next();

 



        if( uname.equals("TOM") && pwd.equals("1234567") ){

        System.out.print("登录成功! ");

        }else{

        System.out.print("用户名或密码不匹配,登录失败!");

        }

    }   

}

提高:“==”和equals()有什么区别

1.==:判断两个字符串在内存中的首地址,即判断是否是同一个字符串对象

2.equals():检查组成字符串内容的字符是否完全一致

举例:



(1)  声明一个string类型的对象 str1,这个操作会在内存中示例化一个string类型的对象。         

(2) 再声明一个String类型的对象str2,这个操作会在内存中示例化另一个String类型的对象,与第一个对象相互独立。

(3)比较两个对象的引用,因为他们是相互独立的所以输出false

(4)比较两个对象的值,他们虽然是独立的内存区域但是有共同的内存结构(值),输出true


(1)声明一个字符串str1 会示例化一个String类型的对象。

(2)声明另一个字符串 ,现在会检查在同一作用域中有没有相同的内存结构的变量,如果有就直接将将地址指向他。

(3)==比较他们有相同的地址, true。

 (4)equals比较他们有相同的内存结构(值),true。


五、字符串其他比较

1.使用equalsIgnoreCase()方法 

2.使用toLowerCase()方法

3.使用toUpperCase( )方法

六、字符串连接

方法1:使用“+”

举例:

int sqlScore = 80;                      //sql成绩

int javaScore = 90;                    //java成绩

double htmlScore = 86.7;         //html成绩

String scoreSheet = "SQL:" + sqlScore + "  Java:" + javaScore + "  HTML:" + htmlScore;

方法2:使用concat    

举例:

String s = new String("你好,");

String name = new String("张三!");

String sentence = s.concat(name);

System.out.println(sentence);


七、字符串拆分

String类提供了split()方法,将一个字符串分割为子字符串,结果作为字符串数组返回

举例:


参考代码

public class Lyric {

    public static void main(String[] args) {

        String words="长亭外 古道边 芳草碧连天 晚风扶 柳笛声残 夕阳山外山";

        String[] printword=new String[100];

        System.out.println("***原歌词格式***\n"+words);

        System.out.println("\n***拆分后歌词格式***");

        printword=words.split(" "); 

for(int i=0;i<printword.length;i++){

        System.out.println( printword[i] );

        }

    }

}