一、String类概述

  在Java中,字符串被作为String类型的对象来处理。

  String类位于java.lang包中,默认情况下会自动导入到所有的程序中。

创建String对象的方法如下:

  String s = "Hello World!";

或者

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

二、String类常用方法

  1.求字符串长度  length()  在语法中:length()返回字符串的长度。

例如,注册新用户时要求密码长度不能小于6位:

 import java.util.Scanner;

 public class Register {

     public static void main(String[] args) {
Scanner input = new Scanner(System.in);
String uname,pwd;
System.out.print("请输入用户名:");
uname = input.next();
boolean flag = false;//控制是否重新输入密码
do {
System.out.print("请输入密码:");
pwd = input.next();
//判断密码长度是否符合要求
if (pwd.length() < 6) {
System.out.println("密码长度不能小于6位!");
} else {
System.out.println("注册成功!");
flag = true;
}
} while (!flag );
System.out.println("您注册的账号为:"+uname+"密码:"+pwd+",请牢记!");
input.close();
} }

  2.字符串比较

  语法:  字符串1.equals(字符串2);

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

  注:在Java中,双等号(==)和equals()方法应用于两个字符串,所判断的内容是有差别的。“==”判断的是两个字符串对象在内存中的地址,就是判断是否是同一个字符串对象,而equals()判断的是两个字符串对象的值。

  ★忽略大小写的字符串比较的语法:

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

  系统规定登陆时不考虑用户名的大小写问题实现登录,使用equalsIgnoreCase()方法即可实现。

    public class Login(){

      public static void main(String[] args){

        //省略部分代码

        if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("123456")){

          System.out.println("登陆成功!");

        }else{

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

        }

      }

    }

  ★在Java中,String类提供了两个方法改变字符串中字符的大小写:

    toLowerCase():转换字符串中的英文字符为小写;

    toUpperCase():转换字符串中的英文字符为大写。

 import java.util.Scanner;

 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();
//equals()
if(uname.equals("TOM")&&pwd.equals("asdfgh")){
System.out.println("登陆成功!");
}else{
System.out.println("用户名和密码不匹配,登录失败!");
}
//equalsIgnoreCase()
if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("asdfgh")){
System.out.println("登陆成功!");
}else{
System.out.println("用户名或密码不匹配,登录失败!");
}
//toLowerCase()
//toUpperCase()
if(uname.toUpperCase().equals("TOM")&&pwd.toLowerCase().equals("asdfgh")){
System.out.println("登陆成功!");
}else{
System.out.println("用户名或密码不匹配,登录失败!");
}
input.close(); } }

  3.字符串的连接

    语法:  字符串1.concat(字符串2);

    字符串2被连接到字符串1的后面,返回连接后的新字符串。

  所以连接字符串的方法有两种:使用“+”运算符和使用String类的concat()方法。

  4.字符串提取和查询

    public int indexOf(int ch);

    public int indexOf(String value);//搜索第一个出现的字符ch(或者字符串value)

    public int lastIndexOf(int ch);

    public int lastIndexOf(String value);//搜索最后一个出现的字符(或字符串value)

    public String substring(int index);//提取从位置索引开始的字符串部分

    public String substring(int beginindex,int endindex);//提取从beginindex开始到endindex之间的字符串部分

    public String trim();//返回一个前后不含任何空格的调用字符串的副本

    字符串事实上也是一个字符数组。

案例:

  学生使用作业提交系统提交Java作业时,输入Java源文件名,并输入自己的电子邮箱,提交前系统检查:是否是合法的Java文件名,电子邮件是否为合法的电子邮箱。

分析:

  判断Java的文件名是否合法,关键是判断它是不是以“.java”结尾;

  判断电子邮箱是否合法,至少要检查电子邮箱名中是否包含“@”和“.”,并且“@”在“.”之前。

这里需要使用到String类提供的提取和搜索字符串的方法:

 import java.util.Scanner;

 /**
* 验证
* @author Administrator
*
*/
public class Verify { public static void main(String[] args) {
boolean fileCorrect = false;//标识文件名是否正确
boolean emailCorrect = false;//标识E-mail是否正确
System.out.println("-----欢迎进入作业提交系统----");
Scanner input = new Scanner(System.in);
System.out.print("请输入Java文件名:");
String fileName = input.next();
System.out.print("请输入你的邮箱:");
String email = input.next();
//检查Java文件名
int index = fileName.indexOf("."); //“.”的位置
int indexlast = fileName.lastIndexOf(".");
if(index!=-1&&index!=0&&fileName.substring(indexlast,fileName.length()).equalsIgnoreCase(".java")){
fileCorrect = true;
}else{
System.out.println("文件名无效!");
}
//检查电子邮箱格式
if(email.indexOf("@")!=-1&&email.indexOf("@")!=0&&email.indexOf("@")<email.indexOf(".")){
emailCorrect = true;
}else{
System.out.println("E-mail无效!");
}
//输出检测结果
if(fileCorrect&&emailCorrect){
System.out.println("作业提交成功!");
}else{
System.out.println("作业提交失败!");
}
input.close(); } }

  5.字符串拆分

    语法:  字符串.split(separator,limit);

    separator为可选项,标识拆分字符串是使用的一个或多个字符。

      如果不选择该项,则返回包含该字符串所有字符的元素数组。

    limit为可选项,该值用来限制返回数组中的元素个数。

最新文章

  1. 《硝烟中的Scrum和XP》:作者主导Scrum过程的实战经验,四星推荐
  2. hdoj 5003
  3. gcc, numpy, rabbitmq等安装升级总结
  4. SQL Server数据库(SQL Sever语言 事务)
  5. Android studio设置参数提示
  6. matlab2013a for linux/Ubuntu 安装步骤及创建快捷方式(ubuntu14.04下安装)
  7. JUnit使用Eclipse建立Test Case - 就是爱Java
  8. python 安装 ez_setup.py出现的问题及解决办法
  9. #include &lt;stdbool.h&gt;
  10. ServiceBase 类
  11. 禁用viewstate
  12. Android基于发展Service音乐播放器
  13. windows_keyboard shortcuts快捷键
  14. [基础]PeopleSoft中的作业和调度作业集合定义
  15. [51nod 1515] 明辨是非
  16. 解决Windows服务无法访问网络映射盘的问题
  17. MongoDB 分片键的选择与案例
  18. 微信小程序----用户拒绝授权,重新调起授权
  19. LabVIEW(十五):右键菜单添加创建VI模版
  20. Linux的用户

热门文章

  1. loj#2978. 「THUSCH 2017」杜老师(乱搞)
  2. React学习笔记一
  3. 1. C/C++项目一
  4. 跟我一起读postgresql源码(四)——Planer(查询规划模块)(上)
  5. 【智能算法】迭代局部搜索(Iterated Local Search, ILS)详解
  6. vscode 遇到设置问题
  7. JAVA之I/O 输入输出流详解
  8. bzoj2190 仪仗队
  9. c# IList.ToList()后更改元素值会不会影响原列表的值
  10. 面向对象中的@classonlymethod 与 @classmethod的区别