Java基础知识——String篇

embedded/2024/12/22 19:59:18/

一、String

1、是什么

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

2、如何构造

(1)无参数构造方法

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

(2)从字符数组创建

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

(3)从字节数组创建

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

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

java">String str = "Hello, World!";

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

java">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):根据指定的正则表达式分割字符串。

 示例:

java">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)遍历字符串和统计字母个数

java">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 类型的变量参与计算时候自动类型提升为intsmall++;}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)字符串的拼接

java">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)字符串的反转 

java">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. 无参数构造

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

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

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

3、常用方法 

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

示例:

java">public class StringBuilderDemo1 {public static void main(String[] args) {// 创建一个空的 StringBuilderStringBuilder sb1 = new StringBuilder();// 添加内容sb1.append("Hello");sb1.append(" ");sb1.append("World!");System.out.println(sb1.toString());  // 输出: Hello World!// 创建并初始化 StringBuilderStringBuilder 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)字符串拼接

java">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)字符串的反转

java">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)基本构造方法: 

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

 (2)指定前缀和后缀

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

3、常用方法

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

示例: 

java">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]// 合并两个 StringJoinerStringJoiner joiner3 = new StringJoiner("; ");joiner3.add("Python");joiner3.add("Java");// 将 joiner1 和 joiner3 合并joiner1.merge(joiner3);System.out.println(joiner1.toString());  // 输出: Apple, Banana, Cherry; Python; Java}
}

 

 


http://www.ppmy.cn/embedded/125381.html

相关文章

Pulsar消息服务之Java工具类

Pulsar介绍 Pulsar是一种多租户、高性能的服务器到服务器消息传递解决方案。Pulsar最初由雅虎开发&#xff0c;目前由Apache软件基金会管理。 官方网站 https://pulsar.apache.org/ 目的 基于Pulsar客户端jar包&#xff0c;用Java开发MQ消息发送与接收工具类&#xff1b; J…

Git基本操作与分支

一、操作入门 先看大屏幕&#xff1a;先背过 再来操作 初始化 刚入门的小朋友可能出现这种问题&#xff1a; 原因是&#xff1a;需要自己创建一个记事本文件 add的作用是添加指定文件到暂存区。 commit是提交暂存区到仓库区&#xff0c;此处的仓库是本地仓库&#xff0c;本…

Jenkins pipeline配置示例

前提条件&#xff1a;已经安装Jenkins并能正常启动 如果Jenkins安装启动遇到问题可以参考&#xff1a; 1.创建pipeline 点击新建项目&#xff1a; 输入名称&#xff0c;选择pipeline&#xff1a; 进入配置页面&#xff0c;如果要配置GitHub Webhook要勾选&#xff1a;<fo…

模拟算法(4)_外观数列

个人主页&#xff1a;C忠实粉丝 欢迎 点赞&#x1f44d; 收藏✨ 留言✉ 加关注&#x1f493;本文由 C忠实粉丝 原创 模拟算法(4)_外观数列 收录于专栏【经典算法练习】 本专栏旨在分享学习算法的一点学习笔记&#xff0c;欢迎大家在评论区交流讨论&#x1f48c; 目录 1. 题目链…

轮椅拐杖残疾人检测数据集 4400张 轮椅拐杖 标voc yolo

轮椅拐杖残疾人检测数据集 4400张 轮椅拐杖 标voc yolo 2 分类名: (图片张数&#xff0c; 标注个数) whee Ichair: (3766&#xff0c; 4460) person_ crutch: (682&#xff0c; 693) 总数: (4448&#xff0c; 5153) . 总类(nc): 2类 轮椅拐杖残疾人检测数据集介绍 数据集概述…

Spring Cloud全解析:链路追踪之springCloudSleuth简介

文章目录 springCloudSleuth简介链路追踪&#xff1f;SpringCloudSleuth术语链路示意图zipkin依赖配置 springCloudSleuth简介 链路追踪&#xff1f; 什么是链路追踪&#xff1f;就是将一次分布式请求还原成调用链路&#xff0c;将一次分布式请求的调用情况集中展示&#xff…

Unity3D游戏的内存控制详解

Unity3D是一款流行的游戏引擎&#xff0c;支持多种平台&#xff0c;包括PC、移动设备和VR等。随着游戏的复杂性不断提高&#xff0c;Unity3D的内存管理变得尤为重要。本文将详细介绍Unity3D游戏中的内存控制技术&#xff0c;包括自动内存管理、对象池、延迟加载资源和手动清理资…

【鸿蒙开发】深入理解鸿蒙开发中的@State装饰器:掌握组件内状态管理

文章目录 State装饰器的含义State装饰的变量的特点&#xff1a;State装饰器的作用代码示例自动更新UI输入数据值传递 总结本文参考华为开发者官网内容&#xff1a; 在鸿蒙&#xff08;HarmonyOS&#xff09;开发中&#xff0c;使用ArkTS&#xff08;Ark TypeScript&#xff09;…