Java字符串-1

本文介绍了Java中字符串的基础概念,包括如何使用和初始化字符串,字符串长度的获取,以及equals()和equalsIgnoreCase()方法的比较。重点讲解了在注册和登录验证中如何确保密码长度和大小写敏感/不敏感的正确处理。
摘要由CSDN通过智能技术生成

 

目录

15.1 字符串概述

15.1.1如何使用字符串

15.1.2字符串的长度

15.1.3字符串的比较


本章工作任务

  • 实现注册信息的有效性验证
  • 格式化显示商品金额

本章技能目标

  • 掌握String的基本用法
  • 会使用==和equals()比较字符串
  • 会使用StringBuffer类的方法对字符串进行操作

本章简介

在前面章节中,大家学习了如何定义和调用方法,以及带参方法的使用。在本章中,我们来学习字符串。字符串被广泛地用在Java程序设计中,很多操作都要使用字符串来完成。例如,系统中存储的密码、频繁使用的电子邮箱、登录系统或BBS的用户名等,都要使用字符串来存储。那么对字符串的处理当然也是必不可少的。因此,在学习的过程中一定要重视它。字符串运用得好坏足以影响程序的运行效率,了解处理字符串的常用方法,可以省去不少程序编写与维护的工夫。下面就来学习处理字符串的方法。

技术内容

15.1 字符串概述

在现实生活中,大家一定注册过电子邮箱,用户名和密码等使用的就是字符串。字符串是一系列字符组成的序列。其实,从进入Java编程世界的第一天起,大家就已经在使用字符串了,如程序从控制台输出字符串"欢迎进入"、"教育改变生活"等,可以说字符串无处不在。

15.1.1如何使用字符串

简单地说,使用字符串主要分为两步。

(1) 定义并初始化字符串。

(2) 使用字符串,对字符串进行一些处理。

前面已经学过如何创建一个字符串,如下所示。

语法:

//创建一个字符串对象 Hello World"

String s =  n Hello World";

在Java中,字符串被作为String类型的对象来处理。String类是Java设计人员预先提供的一个非常有用的类,它位于java, lang包中,默认情况下,该包被自动导入所有的程序。创建String对象的另外两种方法如下列代码所示。

//创建一个空字符串

String s = new String ();

或者

//创建一个字符串对象 Hello World"

String s = new String("Hello World");

正因如此,大家可以通过使用String类提供的方法来完成对字符串的操作。String类提供了许多有用的方法,如获得字符串的长度、对两个字符串进行比较、连接两个字符串及提取一个字符串中的某一部分等。下面我们就来领略一下它的强大之处。

15.1.2字符串的长度

问题:注册新用户,要求密码长度不能小于6位。


分析:学习了 Scanner类之后,在控制台接收一个从键盘上输入的字符串已经不再是一件难事。那么,如何计算字符串的长度呢? String类提供了 length()方法。字符串是一串字符序列,String类的length()方法用来确定字符串的长度,即字符串中的字符数目。调用length()方法返回的结果就是字符串中的字符数,如图15.1所示。

图15.1获得字符串的长度

调用length()方法的语法如下。

字符串 1. length ();

返回字符串1的长度。

示例1

package cn.jbit.classandobject;
import java.util.*;
public class Register {
   
/*
     *
注册密码长度不少于6
     */
   
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,运行结果如图15.2所示。


在示例1中,使用字符串对象pwd的length()方法 "pwd.length()" 获得密码字符串的长度。由于 "1234567" 的长度为7,因此符合 ">=6" 的要求,打印输出 "注册成功"。

图15.2示例1的运行结果

15.1.3字符串的比较

在生活中,经常会对字符串进行比较。登录计算机操作系统时,输入的密码会和系统中已保存的密码进行比较;去书店买书时,看到的书名会和你大脑中想买的书名进行比较;考试结束去查成绩时,无意中也在将看到的名字和自己的名字进行比较,最终找到自己的成绩。可见,字符串的比较遍布我们的生活。接下来学习如何使用计算机进行字符串的比较。

问题:注册成功后,实现登录验证。用户名为 ”wangfeng” , 密码为 “1234567”。

分析:要编写程序让计算机比较两个字符串对象的内容是否一致,在前面章节的学习中已经接触过了,使用equals()方法可以帮助大家解决这个问题。下面一起来回顾一下,分析它的工作原理,如图15.3所示。

 

在使用equals()方法比较两个字符串时,它逐个对照组成两个字符串的每个字符是否相同。如果都相同,则返回true ; 否则返回false。对于字符的大小写,也在检查范围之内,语法如下。

语法:

字符串1. equals (字符串2);

比较两个字符串的值是否相同,返回boolean类型的值。如果相同,则返回true;否则返回false。

示例2

package cn.jbit.classandobject;
import java.util.*;
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("wangfeng")&&pwd.equals("1234567")){
           
System.out.print("登录成功! ");
        }
else{
           
System.out.print("用户名或密码不匹配,登录失败!");
        }
    }
}


运行示例2,运行结果如图15.4所示。

图15.4示例2的运行结果

uname.equals("wangfeng")pwd.equals("1234567") 分别比较输入的值是否符合要求。如果符合,则返回true,打印输出 "登录成功"。

可能大家会有疑问,为什么不能使用双等号(==)来判断两个字符串是否相同呢?在Java中,双等号(==)和equals()方法虽都应用于两个字符串,但所判断的内容是有差别的。简单地讲,"=="判断的是两个字符串对象在内存中的首地址是否相等,即判断是否是同一个字符串对象,而equals()判断的是两个字符串对象的值是否相等。了解了这一点,就不难理解示例3的运行结果了。

示例3

package cn.jbit.classandobject;
public class Difference {
   
public static void main(String[] args){
       
String str1 = new String("我爱我的祖国");
       
String str2 = new String("我爱我的祖国");
       
if (str1.equals(str2)){
           
System.out.println("两个字符串值相同。");
        }
else{
           
System.out.println("两个字符串值不相同。");
        }
       
if (str1==str2){
           
System.out.println("两个字符串相同。");
        }
else {
           
System.out.println("两个字符串不相同。");
        }
    }
}


运行示例3,运行结果如图15.5所示。

图15.5示例3的运行结果

在使用equals()方法比较两个字符串时,对于字符的大小写,也在检查范围之内。但有时我们会碰到忽略大小写的验证,如"Java"和"java"都是指Java这门课程,使用equals()方法比较会认为它们不是一门课,因此,需要使用另一种方法——equalslgnoreCase()方法。Ignore是"忽略"的意思,这种方法在比较字符串时会忽略字符的大小写,语法如下。

语法:

字符串  1. equalsIgnoreCase ( 字符串 2);

忽略大小写比较字符串1和字符串2。如果都相同,则返回true;否则返回false。

问题:系统规定,登录时不考虑用户名的大小写问题,该如何实现登录?

分析:修改示例2,使用equalsIgnoreCase()方法即可实现。

  • 1
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值