JavaApi高级编程(二)字符串概念和使用以及String和StringBuffer的区别

简介: JavaApi高级编程(二)字符串概念和使用以及String和StringBuffer的区别

一、String的基本概念


概念:String类位于java.lang包中,具有丰富的方法,是最常用的类之一

例如:

使用String储存字符串

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


二、String的基本使用


方法一:字符串长度

//注册用户,要求密码不能小于6位数

import java.util.Scanner;
    public class Work {
     public static void main(String[] args) {
      Scanner sc = new Scanner(System.in);
            String name,mm;
            System.out.println("请输入你的用户名:");
      String name = sc.next();
      System.out.println("请输入你的密码:");
      String mm = sc.next();
      if(mm.length()>=6) {
        System.out.println("恭喜您,注册成功");
      }else {
        System.out.println("密码长度不能小于6:");
      }
        }
    }

分析:

1、字符串长度

2、调用length()方法获得

3、返回字符串中的字符数

方法二:字符串的比较

//登录后,实现登录验证

import java.util.Scanner;
public static void main(String[] args) {
  Scanner sc = new Scanner(System.in);
         System.out.println("请输入你的用户名:");
   String name = sc.next();
      System.out.println("请输入你的密码:");
      String mm = sc.next();
   if(name.equals("QWE")&&mm.equals("1234567890")) {
     System.out.println("恭喜您,登录成功");
   }else {
     System.out.println("用户名或者密码错误:");
      }
    }

问题:登陆时不考虑用户名大小写的问题,实现登录!!!

分析:

1、使用equalslgnoreCase()方法

2、使用toLowerCase()方法

3、使用toUpperCase方法

方法三:字符串连接

使用"+"或者使用String类的concat()方法

String s = new String("你好,");
String name = new String("张三!");

//B字符串将被连接到A字符串的后面

String sentence = s.concat(name);
System.out.println(sentece);

输出结果:你好,张三!

方法四:

1、字符串常用提取方法,判断是否正确、是否存在

2、字符串截取方法

3、检查Java文件名

4、字符串拆分

1、//返回指定字符在字符串中第一次出现的索引位置

System.out.println(s1.indexOf("复"));

//返回指定字符在字符串中最后一次出现的索引位置

System.out.println(s1.lastIndexOf("这"));

2、//字符串截取方法

s1 = "|张三|,|是|,|李四|";

//从指定位置开始截取到最后返回截取后的字符串

s3 = s1.substring(3);
System.out.println(s3);

//从指定位置开始截取到指定位置结束,不截取结束位置的字符串

s3 = s1.substring(3,5);
System.out.println(s3);

3、//检查Java文件名:

int index = fileName.lastIndexOf(",");
if(index!=-1&&index!=0&&fileName.substring(index+1,fileName.length()).equals("java")){
    fileCorrect = true;
}else{
    System.out.println("文件名无效:")
}

4、//字符串拆分

//根据给定的规则对字符串进行拆分

s1 = "|赵六|,|是|,|千子哥|";
String [] ss = s1.split(",");
System.out.println(ss.length);

//遍历数组

for (int i = 0; i < ss.length; i++) {
  System.out.println(ss[i]);
}


三、StringBuffer的基本使用


StringBuffer是使用缓冲区的,也是操作字符串的。与String类不同的是String内容一旦声明之后不可改变,改变的只是其存地址的指向,而StringBuffer中的内容是可以改变的

public class Test1 {
  public static void main(String[] args) {
  StringBuffer sb = new StringBuffer("123456789");
  String s = "1234567890-";
  System.out.println(sb);
  sb.append("今天很开心");
  System.out.println(sb);
  }
}

1、字符串的连接操作:(append)

2、在任意位置处为StringBuffer添加内容,可以直接用insert()方法添加内容

3、字符串反转操作,直接使用reverse()方法就可以完成反转的功能

4、替换指定范围的内容:StringBuffer类中也存在replace()方法

5、字符串的截取:通过substring()方法直接从StringBuffer()中指定范围的内容

6、删除指定位置的字符串:可以通过delete()方法删除指定范围的内容


四、StringBuilder的基本使用


1、StringBuilder是一个可变的字符序列

2、建议优先采用该类,因为该类大多数实现中比StringBuffer要快

3、StringBuilder实例用于多线程是不安全的。如果需要这样的同步,建议使用StringBuffer

StringBuilder sbb = new StringBuilder("123");


相关文章
|
22天前
|
Python
Python中的f-string:更简洁的字符串格式化
Python中的f-string:更简洁的字符串格式化
184 92
|
2月前
|
自然语言处理 Java Apache
在Java中将String字符串转换为算术表达式并计算
具体的实现逻辑需要填写在 `Tokenizer`和 `ExpressionParser`类中,这里只提供了大概的框架。在实际实现时 `Tokenizer`应该提供分词逻辑,把输入的字符串转换成Token序列。而 `ExpressionParser`应当通过递归下降的方式依次解析
190 14
|
3月前
|
存储 安全 Java
String StringBuffer StringBuilder 区别详解与对比分析
本文详细解析了Java中String、StringBuffer和StringBuilder的区别,从可变性、线程安全性和性能三个方面进行对比,并结合具体应用场景分析了三者的适用范围。通过性能测试示例展示了它们在字符串拼接时的效率差异,同时提供了实际代码案例帮助理解。总结指出,String适合少量操作或线程安全场景,StringBuffer适用于多线程环境,而StringBuilder则在单线程下性能最优。开发者应根据需求选择合适的类以优化程序性能。文末还附有相关面试资料供参考。
574 2
|
6月前
|
数据处理
鸿蒙开发:ArkTs字符串string
字符串类型是开发中非常重要的一个数据类型,除了上述的方法概述之外,还有String对象,正则等其他的用处,我们放到以后得篇章中讲述。
288 19
|
3月前
|
存储 编译器 C语言
关于string的‘\0‘与string,vector构造特点,反迭代器与迭代器类等的讨论
你真的了解string的'\0'么?你知道创建一个string a("abcddddddddddddddddddddddddd", 16);这样的string对象要创建多少个对象么?你知道string与vector进行扩容时进行了怎么的操作么?你知道怎么求Vector 最大 最小值 索引 位置么?
76 0
|
6月前
|
缓存 安全 Java
《从头开始学java,一天一个知识点》之:字符串处理:String类的核心API
🌱 **《字符串处理:String类的核心API》一分钟速通!** 本文快速介绍Java中String类的3个高频API:`substring`、`indexOf`和`split`,并通过代码示例展示其用法。重点提示:`substring`的结束索引不包含该位置,`split`支持正则表达式。进一步探讨了String不可变性的高效设计原理及企业级编码规范,如避免使用`new String()`、拼接时使用`StringBuilder`等。最后通过互动解密游戏帮助读者巩固知识。 (上一篇:《多维数组与常见操作》 | 下一篇预告:《输入与输出:Scanner与System类》)
140 11
|
6月前
|
Java
课时14:Java数据类型划分(初见String类)
课时14介绍Java数据类型,重点初见String类。通过三个范例讲解:观察String型变量、&quot;+&quot;操作符的使用问题及转义字符的应用。String不是基本数据类型而是引用类型,但使用方式类似基本类型。课程涵盖字符串连接、数学运算与字符串混合使用时的注意事项以及常用转义字符的用法。
144 9