首页 > 编程语言 >Java基础知识——String篇

Java基础知识——String篇

时间:2024-10-10 23:22:23浏览次数:11  
标签:Java String StringBuilder System 基础知识 println 字符串 out

一、String

1、是什么

String 是 Java 中用于表示字符串的类。Java 中的字符串是不可变的,也就是说一旦创建,字符串的内容无法更改。

2、如何构造

(1)无参数构造方法

String str = new String();
//创建一个空字符串。

(2)从字符数组创建

char[] charArray = {'H', 'e', 'l', 'l', 'o'}; 
String str = new String(charArray);

(3)从字节数组创建

byte[] byteArray = {65, 66, 67}; // 对应字符 A, B, C 
String str = new String(byteArray);

(4)从字符串字面量创建

String str = "Hello, World!";

(5)从另一个字符串创建

String original = "Hello";
 String str = new String(original);

3、常用方法

  • length():返回字符串的长度。
  • charAt(int index):返回指定索引处的字符。
  • substring(int beginIndex, int endIndex):返回指定范围内的子字符串。
  • indexOf(String str):返回指定子字符串第一次出现的索引。
  • toUpperCase() / toLowerCase():转换为大写或小写。
  • trim():去掉字符串两端的空白字符。
  • equals(Object obj):比较两个字符串是否相等。
  • split(String regex):根据指定的正则表达式分割字符串。

 示例:

public class StringExample {
    public static void main(String[] args) {
        // 从字面量创建字符串
        String str1 = "Hello, World!";
        System.out.println("Length: " + str1.length());  // 输出: Length: 13

        // 获取特定索引的字符
        char ch = str1.charAt(7);
        System.out.println("Character at index 7: " + ch);  // 输出: Character at index 7: W

        // 获取子字符串
        String subStr = str1.substring(7, 12);
        System.out.println("Substring: " + subStr);  // 输出: Substring: World

        // 查找子字符串的索引
        int index = str1.indexOf("World");
        System.out.println("Index of 'World': " + index);  // 输出: Index of 'World': 7

        // 转换为大写和小写
        String upper = str1.toUpperCase();
        String lower = str1.toLowerCase();
        System.out.println("Uppercase: " + upper);  // 输出: Uppercase: HELLO, WORLD!
        System.out.println("Lowercase: " + lower);  // 输出: Lowercase: hello, world!

        // 去除空格
        String str2 = "   Hello, Java!   ";
        String trimmed = str2.trim();
        System.out.println("Trimmed string: '" + trimmed + "'");  // 输出: Trimmed string: 'Hello, Java!'

        // 字符串比较
        String str3 = "Hello";
        String str4 = new String("Hello");
        System.out.println("Are str3 and str4 equal? " + str3.equals(str4));  // 输出: Are str3 and str4 equal? true

        // 字符串分割
        String csv = "Apple,Banana,Cherry";
        String[] fruits = csv.split(",");
        for (String fruit : fruits) {
            System.out.println(fruit);  // 输出: Apple  Banana  Cherry
        }
    }
}

4、使用场景

(1)遍历字符串和统计字母个数

package week6_String;

import java.util.Scanner;

public class StringDemo1 {
  //键盘录入一个字符串,统计该字符串中大写字母字符,小写字母字符,数字字符的出现次数
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个字符串");
    String str = sc.next();
    int big =0;
    int small=0;
    int number=0;
    for (int i = 0; i <str.length() ; i++) {
      char c = str.charAt(i);
      if('a'<=c&&c<='z'){
        //char 类型的变量参与计算时候自动类型提升为int
        small++;
      }else if('A'<=c && c<='Z'){
        big++;
      }else if(c>='0'&&c<='9'){
        number++;
      }

    }
    System.out.println("小写字母有:"+small+"个");
    System.out.println("大写字母有:"+big+"个");
    System.out.println("数字有:"+number+"个");
  }
}

(2)字符串的拼接

package week6_String;
//定义一个方法,把int 数组中的数据按照指定的格式拼接成一个字符串返回,
调用该方法,并在控制台输出结果
public class StringDemo2 {
  public static void main(String[] args) {
    int[] arr ={1,2,3,4,5};
    String str = arrToString(arr);
    System.out.println(str);

  }
  public static String arrToString(int[] arr){
    //使用String方法:
    if(arr == null){
      return "";
    }
    if(arr.length==0){
      return "[]";
    }
    String result ="[";
    int i = 0;
    for (; i < arr.length-1; i++) {
      result = result+arr[i]+",";
    }
    result =result+arr[i]+"]";
    return result;
   
  }
}

输出结果:[1,2,3,4,5] 

(3)字符串的反转 

package week6_String;

public class StringDemo3 {
  public static void main(String[] args) {
    String s =reverse("abcdefghij");
    System.out.println(s);
  }
  public static String reverse(String str){
    String result = "";
    for (int i = str.length()-1; i >=0 ; i--) {
      char c = str.charAt(i);
      result = result +c;
    }
    return result;
  }
}

输出结果: jihgfedcba

二、StringBuider

1、是什么

StringBuilder可以看成是一个容器,创建之后里面的内容是可变的。

作用:提高字符串的操作效率

2、如何构造

  1. 无参数构造

    StringBuilder sb = new StringBuilder();
    //创建一个空的 StringBuilder,默认初始容量为 16。
  2. 指定初始容量

    StringBuilder sb = new StringBuilder(int capacity);\
    //创建一个指定初始容量的 StringBuilder。
  3. 从字符串初始化

    StringBuilder sb = new StringBuilder(String str);
    //创建一个包含指定字符串内容的 StringBuilder。

3、常用方法 

  • append():追加字符串。
  • insert():在指定位置插入字符串。
  • delete():删除指定范围内的字符。
  • replace():替换指定范围内的字符。
  • reverse():反转字符序列。
  • toString():将 StringBuilder 转换为 String

示例:

public class StringBuilderDemo1 {
  public static void main(String[] args) {
    // 创建一个空的 StringBuilder
    StringBuilder sb1 = new StringBuilder();

    // 添加内容
    sb1.append("Hello");
    sb1.append(" ");
    sb1.append("World!");
    System.out.println(sb1.toString());  // 输出: Hello World!

    // 创建并初始化 StringBuilder
    StringBuilder sb2 = new StringBuilder("Java");
    System.out.println(sb2.toString());  // 输出: Java

    // 插入字符串
    sb2.insert(4, " Programming");
    System.out.println(sb2.toString());  // 输出: Java Programming

    // 删除部分字符串
    sb2.delete(4, 15);
    System.out.println(sb2.toString());  // 输出: Java

    // 替换字符串
    sb2.replace(0, 4, "Python");
    System.out.println(sb2.toString());  // 输出: Python

    // 反转字符串
    sb2.reverse();
    System.out.println(sb2.toString());  // 输出: nohtyP
  }
}

 4、使用场景

(1)字符串拼接

package week6_String;
//定义一个方法,把int 数组中的数据按照指定的格式拼接成一个字符串返回,
调用该方法,并在控制台输出结果
public class StringDemo2 {
  public static void main(String[] args) {
    int[] arr ={1,2,3,4,5};
    String str = arrToString(arr);
    System.out.println(str);

  }
  public static String arrToString(int[] arr){
    //使用String方法:
//    if(arr == null){
//      return "";
//    }
//    if(arr.length==0){
//      return "[]";
//    }
//    String result ="[";
//    int i = 0;
//    for (; i < arr.length-1; i++) {
//      result = result+arr[i]+",";
//    }
//    result =result+arr[i]+"]";
//    return result;
    //使用StringBuilder方法:
    StringBuilder sb = new StringBuilder();
    sb.append("[");
    for (int i = 0; i <arr.length ; i++) {
      if(i== arr.length-1){
        sb.append(arr[i]);
      }else{
        sb.append(arr[i]).append(",");
      }
    }
    sb.append("]");
    return sb.toString();
  }
}

 (2)字符串的反转

package week6_String;

import java.util.Scanner;

public class StringBuilderDemo1 {
  public static void main(String[] args) {
    Scanner sc = new Scanner(System.in);
    System.out.println("请输入一个字符串:");
    String str = sc.next();
    String result = new StringBuilder().append(str).reverse().toString();
    if(str.equals(result)){
      System.out.println("当前字符串是对称字符串。");
    }else{
      System.out.println("当前字符串不是对称字符串。");
    }
  }
}

三、Stringjoiner

1、是什么

StringJoiner也可以看成一个容器,创建之后内容是可变的。

StringJoiner 是 Java 8 中引入的一个类,用于构建由分隔符、前缀和后缀包围的字符串序列。

它特别适用于将多个字符串连接在一起,避免了使用字符串拼接时出现的额外分隔符的问题

示例:

 

2、如何构造

(1)基本构造方法: 

StringJoiner joiner = new StringJoiner(CharSequence delimiter);
//创建一个 StringJoiner,指定用于连接元素的分隔符。

 (2)指定前缀和后缀

StringJoiner joiner = new StringJoiner(CharSequence delimiter, CharSequence prefix, CharSequence suffix);
//创建一个 StringJoiner,同时指定分隔符、前缀和后缀。

3、常用方法

  • add():添加一个新的元素到 StringJoiner
  • merge():将另一个 StringJoiner 的内容合并到当前 StringJoiner 中。
  • toString():返回构建的字符串。

示例: 

import java.util.StringJoiner;

public class StringJoinerExample {
    public static void main(String[] args) {
        // 创建一个 StringJoiner,使用逗号作为分隔符
        StringJoiner joiner1 = new StringJoiner(", ");
        joiner1.add("Apple");
        joiner1.add("Banana");
        joiner1.add("Cherry");
        System.out.println(joiner1.toString());  // 输出: Apple, Banana, Cherry
        
        // 创建一个 StringJoiner,指定前缀和后缀
        StringJoiner joiner2 = new StringJoiner(", ", "[", "]");
        joiner2.add("Tom");
        joiner2.add("Jerry");
        System.out.println(joiner2.toString());  // 输出: [Tom, Jerry]

        // 合并两个 StringJoiner
        StringJoiner joiner3 = new StringJoiner("; ");
        joiner3.add("Python");
        joiner3.add("Java");

        // 将 joiner1 和 joiner3 合并
        joiner1.merge(joiner3);
        System.out.println(joiner1.toString());  // 输出: Apple, Banana, Cherry; Python; Java
    }
}

 

 

标签:Java,String,StringBuilder,System,基础知识,println,字符串,out
From: https://blog.csdn.net/2301_80386162/article/details/142795622

相关文章

  • Java的基本程序设计结构
    以上整理来自《Java核心技术卷I》注释数据类型变量与常量运算符字符串输入输出控制流大数数组**一个简单的Java应用程序**访问修饰符:用于控制程序的其他部分对这段代码的访问级别。类名:以大写字母开头源代码的文件名必须与公共类的名字相同,并用.java作为扩展名......
  • Vavr - java函数式编程,分离业务代码与非业务代码神器
    微信公众号:阿俊的学习记录空间小红书:ArnoZhangwordpress:arnozhang1994博客园:arnozhangCSDN:ArnoZhang19941.入门指南使用Vavr的项目至少需要支持Java1.8。该.jar文件可以在MavenCentral获取。1.1.Gradledependencies{compile"io.vavr:vavr:0.10.4"}G......
  • 毕业设计项目-基于JavaWeb技术的在线考试系统设计与实现源码+万字论文
    项目简介基于springboot实现的,主要功能如下:技术栈后端框框:springboot/mybatis前端框架:html/JavaScript/Css/vue/elementui运行环境:JDK1.8/MySQL5.7/idea(可选)/Maven3(可选)/tomcat8+(可选)jdk版本:最好是javajdk1.8,我们在这个平台上运行的,其他版本理论上也可以是否需要mave......
  • eclipse导入文件java环境不适配时怎么办
    比如你在Java8.0环境下写的代码,但是导入另一台Java环境为17的电脑,将会出现如下状况:所以我们需要进行改动首先右键单击导入的包,选择properties然后进行如下操作最后红色的感叹号就成功消失啦~......
  • CAS存在的问题及在Java中的解决方式
    CAS介绍CAS可以保证对共享变量操作的原子性CAS全称CompareAndSwap,比较与交换,是乐观锁的主要实现方式。CAS在不使用锁的情况下实现多线程之间的变量同步。ReentrantLock内部的AQS和原子类内部都使用了CAS。CAS算法涉及到三个操作数:需要读写的内存值V。进行比较的值A。......
  • 基于JAVA+SpringBoot+Vue+协同过滤算法+爬虫的前后端分离的租房系统
    ✌全网粉丝20W+,csdn特邀作者、博客专家、CSDN新星计划导师、java领域优质创作者,博客之星、掘金/华为云/阿里云/InfoQ等平台优质作者、专注于Java技术领域和毕业项目实战✌......
  • Java 初学 day10
    Java10常用类1、API概述API(ApplicationProgrammingInterface)应用程序编程接口编写应该机器人程序去控制机器人踢足球,程序就需要向机器人发出向前跑、向后跑、射门、抢球等各种命令,没有编过程序的人很难想象这样的程序如何编写。但是对于有经验的开发人员来说,知道机器人......
  • Java如何写一个构造函数
     构造函数是类的一个特殊成员函数,它在创建对象时被调用,用于初始化新创建的对象。在Java中,构造函数的名称必须与类名完全相同,没有返回类型(包括void)。构造函数可以有参数,也可以没有。Java中的构造函数示例假设我们想要创建一个Person类,包含name和age两个属性。我们可以这样定......
  • java级开发面试八股文
    1、java基础知识Q1、equals和==的区别==是判断两个变量或实例是不是指向同一个内存空间,equals是判断两个变量或实例所指向的内存空间的值是不是相同。==是对内存地址进行比较,而equals比较的是两个字符串的值是否相等。==指引用是否相同,而equals是比较值是否相同。Q2:集合的父......
  • java+vue计算机毕设高校科研信息管理系统【源码+程序+论文+开题】
    本系统(程序+源码)带文档lw万字以上文末可获取一份本项目的java源码和数据库参考。系统程序文件列表开题报告内容研究背景随着高等教育的快速发展和科研活动的日益复杂化,高校科研管理面临着前所未有的挑战。传统的科研管理方式已难以满足当前高效、透明、协同的管理需求。......