【学习笔记】实用类String的基本应用即常用方法

一、String类概述

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

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

创建String对象的方法如下:

  String s = "Hello World!";

或者

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

二、String类常用方法

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

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

 1 import java.util.Scanner;
 2
 3 public class Register {
 4
 5     public static void main(String[] args) {
 6         Scanner input = new Scanner(System.in);
 7         String uname,pwd;
 8         System.out.print("请输入用户名:");
 9         uname = input.next();
10         boolean flag = false;//控制是否重新输入密码
11         do {
12             System.out.print("请输入密码:");
13             pwd = input.next();
14             //判断密码长度是否符合要求
15             if (pwd.length() < 6) {
16                 System.out.println("密码长度不能小于6位!");
17             } else {
18                 System.out.println("注册成功!");
19                 flag = true;
20             }
21         } while (!flag );
22         System.out.println("您注册的账号为:"+uname+"密码:"+pwd+",请牢记!");
23         input.close();
24     }
25
26 }

  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():转换字符串中的英文字符为大写。

 1 import java.util.Scanner;
 2
 3 public class Login {
 4
 5     public static void main(String[] args) {
 6         Scanner input = new Scanner(System.in);
 7         String uname,pwd;
 8         System.out.print("请输入用户名:");
 9         uname = input.next();
10         System.out.print("请输入密码:");
11         pwd = input.next();
12         //equals()
13         if(uname.equals("TOM")&&pwd.equals("asdfgh")){
14             System.out.println("登陆成功!");
15         }else{
16             System.out.println("用户名和密码不匹配,登录失败!");
17         }
18         //equalsIgnoreCase()
19         if(uname.equalsIgnoreCase("TOM")&&pwd.equalsIgnoreCase("asdfgh")){
20             System.out.println("登陆成功!");
21         }else{
22             System.out.println("用户名或密码不匹配,登录失败!");
23         }
24         //toLowerCase()
25         //toUpperCase()
26         if(uname.toUpperCase().equals("TOM")&&pwd.toLowerCase().equals("asdfgh")){
27             System.out.println("登陆成功!");
28         }else{
29             System.out.println("用户名或密码不匹配,登录失败!");
30         }
31         input.close();
32
33     }
34
35 }

  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类提供的提取和搜索字符串的方法:

时间: 2024-10-11 05:05:15

【学习笔记】实用类String的基本应用即常用方法的相关文章

20161213py学习笔记:string元素不可修改/几种迭代

1.字符串中的元素是不可修改的 strings='andasfefanagrgihaigahairt'for index,string in enumerate(strings): #print index,string if string=='a': strings[index]='w'print strings 这段代码运行时,会出现: strings[index]='w' TypeError: 'str' object does not support item assignment 的报

黑马程序员——JAVA学习笔记七(String类)

1,    String类一旦被初始化就不会被改变. 字符串不不能被改变,编译可以让字符串之间共享.编译器将各种字符串存放在公共的存储池子中.字符串变量指向存储池中相应的位置.实际上只有字符串常量.而+(除了常量相加)和其它方法操作的不是共享的. String s1 ="abc" ,String s2 = "abc" (他们存在公共池中),String s3 = new String ("abc"),存在堆中; 则s1== s2; s1! = s

Thinking in java学习笔记之String的不可变性

为了提高效率,可以使用StringBuffer或StringBuilder 1. 在执行速度方面的比较:StringBuilder > StringBuffer 2. StringBuffer与StringBuilder,他们是字符串变量,是可改变的对象,每当我们用它们对字符串做操作时,实际上是在一个对象上操作的,不像String一样创建一些对象进行操作,所以速度就快了.3. StringBuilder:线程非安全的 StringBuffer:线程安全的 当我们在字符串缓冲去被多个线程使用是,J

.Net学习笔记----字符串string的各种方法

端午节前学到了字符串处理,结果过了个节都忘了,今天拿出来重新过一遍,加深印象 随机输入心中想到的一个名字,然后输出它的字符串长度 //随机输入你心中想到的一个名字,然后输出它的字符串长度 Console.WriteLine("请输入你心中想的那个人的名字"); string name = Console.ReadLine(); Console.WriteLine("这个人的名字是{0}", name.Length); Console.ReadKey(); 两=个学员

【学习笔记】String进阶:StringBuffer类(线程安全)和StringBuilder类

一.除了使用String类存储字符串之外,还可以使用StringBuffer类存储字符串.而且它是比String类更高效的存储字符串的一种引用数据类型. 优点: 对字符串进行连接操作时,使用StringBuffer类可以大大提高程序的执行效率. 1.如何使用StringBuffer类 StringBuffer类位于java.util包中,是String类的增强类.声明StringBuffer对象并初始化的方法如下: StringBuffer sb = new StringBuffer("青春无悔

STL学习笔记(string)

动机 C++标准程序库中的string class使我们可以将string当做一个一般型别.我们可以像对待基本型别那样地复制.赋值和比较string, 再也不必但系内存是否足够.占用的内存实际长度等问题. 操作函数 1.构造函数和析构函数 下表列出string的所有构造函数和析构函数 2.大小和容量 size()和length():返回string中现有的字符个数. max_size():返回一个string最多能够包含的字符数,这个跟机器本身的限制有关系. capacity():重新分配内存之

Cocos2dx学习笔记(2) string char* int类型数据转换

1.char*转string char* cp = "char"; std::string sp = cp; 2.string转char* //1 std::string str = "string"; const char* cp = str.data(); //2 std::string str = "string"; const char* cp = str.c_str(); //3 std::string str = "hell

REDIS学习笔记 之 STRING数据类型

作者:邹祁峰 邮箱:[email protected] 博客:http://blog.csdn.net/qifengzou 日期:2014.10.11 转载请注明来自"祁峰"的CSDN博客 1 简单概述 String数据类型是Redis中最简单.最基础的数据类型,Redis中所有的KEY和VALUE都是String类型,且其他更为复杂的数据类型(LISTS.SETS.SORTED-SETS.HASHES)也均基于String数据类型来存储的.String数据类型是二进制安全的,也就是说

Java学习笔记之String、StringBuffer和StringBuilder

更多博文可参考我的个人博客:贱贱的梦想 基本概念 String:此类代表字符串常量,它们的值在创建之后不能更改. StringBuffer:是一个线程安全的可变字符序列,它与String一样,在内存中保存的都是一个有序的字符串序列(char类型的数组),不同点是StringBuffer对象的值是可变的. StringBuilder:与StringBuffer类基本相同,都是可变字符串系列,不同点是StringBuilder是线程不安全的. 分析 简单的说,String类型和StringBuild