Java 超高频常见字符操作【建议收藏】

这篇具有很好参考价值的文章主要介绍了Java 超高频常见字符操作【建议收藏】。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

发现宝藏

前些天发现了一个巨牛的人工智能学习网站,通俗易懂,风趣幽默,忍不住分享一下给大家。【宝藏入口】。

前言

为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)

1. 字符串拼接

1. 使用 + 操作符:

String str1 = "Hello";
String str2 = ", ";
String str3 = "World";

String result = str1 + str2 + str3;

这种方法是最简单的,通过使用 + 操作符可以将多个字符串连接在一起。Java会自动处理字符串拼接并创建一个新的字符串对象。

2. 使用 concat() 方法:

String str1 = "Hello";
String str2 = ", ";
String str3 = "World";

String result = str1.concat(str2).concat(str3);

concat() 方法用于将一个字符串连接到另一个字符串的末尾。可以连续调用 concat() 方法来连接多个字符串。

3. 使用 StringBuilder 类:

StringBuilder 是一个可变的字符串类,适用于需要频繁修改字符串的情况,因为它不会创建多个中间字符串对象,从而提高了性能。

StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("Hello");
stringBuilder.append(", ");
stringBuilder.append("World");

String result = stringBuilder.toString();

在这种情况下,我们首先创建一个 StringBuilder 对象,然后使用 append() 方法来添加需要拼接的字符串,最后通过 toString() 方法将 StringBuilder 转换为不可变的 String

4. 使用 StringBuffer 类:

StringBuffer 类与 StringBuilder 类 类似,但是是线程安全的,适用于多线程环境。

StringBuffer stringBuffer = new StringBuffer();
stringBuffer.append("Hello");
stringBuffer.append(", ");
stringBuffer.append("World");

String result = stringBuffer.toString();

与 StringBuilder 一样,我们可以使用 append() 方法来构建最终的字符串,然后通过 toString() 方法获取不可变的 String。

5. 使用 String.join() 方法(Java 8+):

这种方法更加简洁,特别适用于将多个字符串与指定的分隔符连接起来的情况。

String.join() 
String str1 = "Hello";
String str2 = ", ";
String str3 = "World";

String result = String.join(str2, str1, str3);

2. 字符串查找

1.使用 indexOf() 方法查找子字符串的位置:

indexOf() 方法用于查找一个字符串是否包含另一个子字符串,并返回第一次出现的位置索引。如果未找到,它将返回 -1。

String mainString = "Hello, World!";
String subString = "World";
int position = mainString.indexOf(subString);

if (position != -1) {
   System.out.println("子字符串在主字符串中的位置是:" + position);
} else {
    System.out.println("子字符串未找到!");
}

2.使用 lastIndexOf() 方法查找最后一次出现的位置:

lastIndexOf() 方法与 indexOf() 方法类似,但它返回最后一次出现的位置索引。

String mainString = "Java is a powerful programming language. Java is also fun!";
String subString = "Java";
int position = mainString.lastIndexOf(subString);

if (position != -1) {
    System.out.println("最后一次出现的位置是:" + position);
} else {
    System.out.println("子字符串未找到!");
}

3.使用 contains() 方法检查字符串是否包含子字符串:

contains() 方法用于检查一个字符串是否包含另一个子字符串,它返回一个布尔值。

String mainString = "This is a Java example.";
String subString = "Java";
boolean contains = mainString.contains(subString);

if (contains) {
    System.out.println("主字符串包含子字符串!");
} else {
    System.out.println("主字符串不包含子字符串!");
}

4.使用正则表达式进行高级搜索:

Java 也支持使用正则表达式来进行复杂的字符串搜索。你可以使用 PatternMatcher 类来实现这一点。这允许你执行更复杂的模式匹配操作。

import java.util.regex.*;

String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);

while (matcher.find()) {
    System.out.println("找到匹配字符串: " + matcher.group());
}

3. 字符串截取

1.使用 substring() 方法:

substring() 方法用于从一个字符串中截取子串,你可以指定截取的起始位置和结束位置。这个方法有两种形式:一种只传入起始位置,另一种传入起始位置和结束位置。

String mainString = "Hello, World!";

// 截取从索引2到索引5之间的子串(包括索引2,但不包括索引5)
String subString1 = mainString.substring(2, 5);
System.out.println("截取子串1: " + subString1); // 输出 "llo"

// 从索引7开始截取到字符串末尾
String subString2 = mainString.substring(7);
System.out.println("截取子串2: " + subString2); // 输出 "World!"

2.使用 split() 方法分割字符串:

split() 方法允许你根据某个分隔符将字符串拆分为子串,然后选择需要的子串。

String text = "apple,banana,grape";

// 使用逗号作为分隔符拆分字符串
String[] fruits = text.split(",");

for (String fruit : fruits) {
    System.out.println("水果: " + fruit);
}

3.使用正则表达式进行高级截取:

Java 的正则表达式库允许你根据复杂的模式来截取字符串。

import java.util.regex.*;

String text = "The quick brown fox jumps over the lazy dog.";
String pattern = "\\b\\w+\\b"; // 匹配单词

Pattern compiledPattern = Pattern.compile(pattern);
Matcher matcher = compiledPattern.matcher(text);

while (matcher.find()) {
    System.out.println("匹配到的单词: " + matcher.group());
}

4. 字符串替換

1.使用 replace() 方法:

replace() 方法用于将指定的字符或子字符串替换为新的字符或子字符串。

String originalString = "Hello, World!";
String searchString = "World";
String replacementString = "Java";

String modifiedString = originalString.replace(searchString, replacementString);
System.out.println("替换后的字符串: " + modifiedString);

输出:

替换后的字符串: Hello, Java!

2.使用 replaceAll() 方法进行正则表达式替换:

replaceAll() 方法允许你使用正则表达式进行更灵活的替换操作。

String originalString = "The quick brown fox jumps over the lazy dog.";
String pattern = "fox";
String replacementString = "cat";

String modifiedString = originalString.replaceAll(pattern, replacementString);
System.out.println("替换后的字符串: " + modifiedString);

输出:

  替换后的字符串: The quick brown cat jumps over the lazy dog.

3.使用 StringBuilder 进行替换:

如果需要进行多次替换或性能要求较高,可以使用 StringBuilder 类。

StringBuilder stringBuilder = new StringBuilder("Java is easy. Java is fun.");
String searchString = "Java";
String replacementString = "Python";
int index = stringBuilder.indexOf(searchString);
while (index != -1) {
    stringBuilder.replace(index, index + searchString.length(), replacementString);
    index = stringBuilder.indexOf(searchString);
}

String modifiedString = stringBuilder.toString();
System.out.println("替换后的字符串: " + modifiedString);

输出:

  替换后的字符串: Python is easy. Python is fun.

5. 字符串分割

1. 使用 split() 方法:

split() 方法是Java中最常用的字符串分割方法。它使用指定的正则表达式作为分隔符,将字符串分割成一个字符串数组。

String inputString = "apple,orange,banana,grape";
String[] fruits = inputString.split(",");

System.out.println("分割后的水果:");
for (String fruit : fruits) {
     System.out.println(fruit);
}

输出:

分割后的水果:
apple
orange
banana
grape

2. 使用 StringTokenizer 类:

StringTokenizer 类是Java中另一种进行字符串分割的方式,它使用指定的分隔符将字符串分割成标记。

String inputString = "Java is a powerful programming language";
StringTokenizer tokenizer = new StringTokenizer(inputString);

System.out.println("分割后的单词:");
while (tokenizer.hasMoreTokens()) {
     System.out.println(tokenizer.nextToken());
}

输出:

分割后的单词:
Java
is
a
powerful
programming
language

3. 使用正则表达式:

你也可以使用正则表达式作为分隔符,以实现更灵活的字符串分割。

String inputString = "Java123is456a789powerful";
String[] parts = inputString.split("\\d+");
System.out.println("分割后的部分:");
for (String part : parts) {
     System.out.println(part);
}

输出:

分割后的部分:
Java
is
a
powerful

4. 使用 Apache Commons Lang 库:

Apache Commons Lang 库提供了 StringUtils 类,其中有一个方便的 split() 方法,可以更容易地处理字符串分割。

import org.apache.commons.lang3.StringUtils;

String inputString = "Java;C;C++;Python";
String[] languages = StringUtils.split(inputString, ';');

System.out.println("分割后的编程语言:");
for (String language : languages) {
     System.out.println(language);
}

输出:

分割后的编程语言:
Java
C
C++
Python

6. 字符串比较

1. 使用 equals() 方法进行内容比较:

equals() 方法用于比较两个字符串的内容是否相同。它比较字符串的每个字符,而不仅仅是比较引用是否相等。

String str1 = "Hello";
String str2 = "World";
String str3 = "Hello";

boolean isEqual1 = str1.equals(str2); // 返回 false
boolean isEqual2 = str1.equals(str3); // 返回 true

System.out.println("str1 和 str2 是否相等:" + isEqual1);
System.out.println("str1 和 str3 是否相等:" + isEqual2);

2. 使用 equalsIgnoreCase() 方法进行忽略大小写的内容比较:

equalsIgnoreCase() 方法与 equals() 方法类似,但它会忽略字符串的大小写。

String str1 = "Hello";
String str2 = "hello";

boolean isEqualIgnoreCase = str1.equalsIgnoreCase(str2); // 返回 true

System.out.println("str1 和 str2 是否相等(忽略大小写):" + isEqualIgnoreCase);

3. 使用 compareTo() 方法进行字典顺序比较:

compareTo() 方法用于比较两个字符串的字典顺序。它返回一个整数,表示两个字符串之间的比较结果。

String str1 = "apple";
String str2 = "banana";
String str3 = "cherry";

int result1 = str1.compareTo(str2); // 返回负数
int result2 = str2.compareTo(str1); // 返回正数
int result3 = str1.compareTo(str3); // 返回负数

System.out.println("str1 和 str2 的比较结果:" + result1);
System.out.println("str2 和 str1 的比较结果:" + result2);
System.out.println("str1 和 str3 的比较结果:" + result3);

4. 使用 startsWith() 和 endsWith() 方法检查前缀和后缀:

startsWith() 方法用于检查字符串是否以指定的前缀开头,而 endsWith() 方法用于检查字符串是否以指定的后缀结尾。

String str = "Hello, World";

boolean startsWithHello = str.startsWith("Hello"); // 返回 true
boolean endsWithWorld = str.endsWith("World");     // 返回 false

System.out.println("字符串是否以 Hello 开头:" + startsWithHello);
System.out.println("字符串是否以 World 结尾:" + endsWithWorld);

5. 使用 compareToIgnoreCase() 方法进行忽略大小写的字典顺序比较:

compareToIgnoreCase() 方法与 compareTo() 方法类似,但它会忽略字符串的大小写。

String str1 = "apple";
String str2 = "Banana";

int result = str1.compareToIgnoreCase(str2); // 返回正数

System.out.println("str1 和 str2 的比较结果(忽略大小写):" + result);

7. 字符串格式化

1. 使用 String.format()

String.format() 方法允许您创建格式化的字符串,类似于C语言中的 printf() 函数。它使用占位符来指定要插入的数据以及它们的格式。占位符由百分号 (%) 后跟一个字符组成,该字符表示插入数据的类型。以下是一些常见的占位符及其用法:

  • %s :字符串。
  • %d :整数。
  • %f :浮点数。
  • %n :换行符。

示例:

String name = "Alice";
int age = 30;
double salary = 50000.50;

String formattedString = String.format("Name: %s, Age: %d, Salary: %.2f", name, age, salary);
System.out.println(formattedString);

输出:

Name: Alice, Age: 30, Salary: 50000.50

在上面的示例中,我们使用了 %s%d%.2f 占位符来插入字符串、整数和浮点数,并指定了浮点数保留两位小数。

2. 使用 printf()

printf() 方法是 System.out 对象的一个方法,它用于将格式化的字符串输出到控制台。与 String.format() 类似,它使用相同的占位符来格式化输出。

示例:

String name = "Bob";
int age = 25;
double height = 1.75;

System.out.printf("Name: %s, Age: %d, Height: %.2f%n", name, age, height);

输出:

Name: Bob, Age: 25, Height: 1.75

8. 字符串空格处理

1. 删除空格:

  • .使用 String 类的 trim() 方法删除字符串前后的空格。
  • trim() 返回一个新的字符串,其中删除了前导和尾随的空格。
String text = "  This is a text with spaces  ";
String trimmedText = text.trim();
System.out.println(trimmedText); // 输出: "This is a text with spaces"

2. 替换空格:

  • 使用 String 类的 replace() 方法替换字符串中的空格。
  • 你可以将空格替换为其他字符或字符串。
String text = "Hello, World!";
String replacedText = text.replace(" ", "_");
System.out.println(replacedText); // 输出: "Hello,_World!"

3. 分割字符串:

  • 使用 split() 方法将字符串拆分成字符串数组。
  • 默认情况下,split() 使用空格作为分隔符,但你可以指定自定义分隔符。
String sentence = "This is a sample sentence";
String[] words = sentence.split(" "); // 使用空格分割成单词数组

4. 检查空格

  • 使用 contains() 方法检查字符串是否包含空格。
String text = "This has spaces";
boolean hasSpaces = text.contains(" "); // 返回 true

5. 统计空格的数量:

  • 使用循环遍历字符串并计算空格的数量。
String text = "Count the spaces in this text";
int spaceCount = 0;
for (char c : text.toCharArray()) {
    if (c == ' ') {
        spaceCount++;
    }
}
System.out.println("空格数量:" + spaceCount); // 输出: "空格数量:5"

6. 替换多个连续空格:

  • 使用正则表达式来替换连续的多个空格为单个空格。
String text = "Replace  multiple   spaces  with one.";
String replacedText = text.replaceAll("\\s+", " ");
System.out.println(replacedText); // 输出: "Replace multiple spaces with one."

7. 处理制表符和换行符:

  • 空白字符不仅包括空格,还包括制表符 (\t) 和换行符 (\n) 等。
  • 你可以使用 replaceAll() 来处理它们,就像处理空格一样。
String textWithTabs = "This\tis\ta\ttab\tseparated\ttext";
String textWithNewlines = "This\nis\na\nnewline\nseparated\ntext";

总结

欢迎各位留言交流以及批评指正,如果文章对您有帮助或者觉得作者写的还不错可以点一下关注,点赞,收藏支持一下。
(博客的参考源码可以在我主页的资源里找到,如果在学习的过程中有什么疑问欢迎大家在评论区向我提出)文章来源地址https://www.toymoban.com/news/detail-713295.html

到了这里,关于Java 超高频常见字符操作【建议收藏】的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 科研中论文常见数学符号及其含义(科研必备,建议收藏)

    返回论文和资料目录 数学符号在数学领域是非常重要的。在论文中,使用数学符号可以使得论文更加简洁明了,同时也能够准确地描述各种概念和理论。在本篇博客中,我将介绍一些常见的数学符号及其含义(省去特别简单的符号),希望能够帮助读者更好地理解数学论文。

    2023年04月25日
    浏览(44)
  • Docker 容器常见故障排查及处理,超好用,建议收藏

    Docker是一种相对使用较简单的容器,我们可以通过以下几种方式获取信息: 1、通过docker run执行命令,查看返回信息 2、通过docker logs 去获取日志,做有针对性的筛选 3、通过systemctl status docker查看docker服务状态 4、通过journalctl -u docker.service 查看日志 以下是整理的docker容器类

    2024年02月04日
    浏览(51)
  • 浅谈字符串的定义(c++)非常详细,建议收藏

    C++ 有一个新的数据类型——字符串类型。这里的 string 是 C++ 所独有的,C语言没有。 定义一个值为 Initial string 的字符串 s s s ,包括空格。 定义一个空字符串 s s s 。 定义一个 s 0 s0 s 0 字符串的copy字符串 s s s 。 定义一个字符串 s 3 s3 s 3 ,该字符串的值为从 s 0 s0 s 0 的第 8

    2024年02月08日
    浏览(54)
  • Java开发手册中为什么不建议在for循环中使用“+“进行字符串操作

    java开发手册中对于循环体中进行字符串的拼接要求如下: 【推荐】循环体内,字符串的连接方式,使用 StringBuilder 的 append 方法进行扩展。 说明:下例中,反编译出的字节码文件显示每次循环都会 new 出一个 StringBuilder 对象,然后进行 append操作, 最后通过 toString 方法返回

    2024年02月08日
    浏览(55)
  • Pandas高级操作,建议收藏(一)

    在数据分析和数据建模的过程中需要对数据进行清洗和整理等工作,有时需要对数据增删字段。下面为大家介绍Pandas对数据的复杂查询、数据类型转换、数据排序的使用。   复杂查询 实际业务需求往往需要按照一定的条件甚至复杂的组合条件来查询数据,接下来为大家介绍如

    2023年04月09日
    浏览(41)
  • python超详细基础文件操作【建议收藏】

    为了巩固所学的知识,作者尝试着开始发布一些学习笔记类的博客,方便日后回顾。当然,如果能帮到一些萌新进行新技术的学习那也是极好的。作者菜菜一枚,文章中如果有记录错误,欢迎读者朋友们批评指正。 (博客的参考源码可以在我主页的资源里找到,如果在学习的

    2024年02月05日
    浏览(41)
  • 密码爆破漏洞详解——黑客必修入门操作( 建议收藏 )

    隔壁老张: “狗剩啊, 隔壁xx村的王姐家的女娃好漂亮,我想盗她qq啊, 你帮我个忙呗!” 狗剩: “我不会呀!” 村里大妈:“那个狗剩啊, 连盗个qq号都不会,他妈还好意思说他是学网络安全当黑客的” 密码爆破又叫 暴力猜解 , 简单来说就是将密码逐个尝试, 直到找出真正的密

    2024年02月07日
    浏览(59)
  • 【Linux】Shell脚本之函数的操作+实战详解(建议收藏⭐)

    🍁 博主简介   🏅云计算领域优质创作者   🏅华为云开发者社区专家博主   🏅阿里云开发者社区专家博主 💊 交流社区: 运维交流社区 欢迎大家的加入! 函数是一段可以重复利用有组织的代码;可以减少代码,提高代码利用率,使脚本结构更加清晰。 这样只是写

    2024年02月05日
    浏览(49)
  • Java格式化日期,时间(三种方法,建议收藏)

    在java中String类格式化的方法,是静态format()用于创建格式化的字符串。 format(String format, Object... args) 新字符串使用本地语言环境,制定字符串格式和参数生成格式化的新字符串。 format(Locale locale, String format, Object... args) 使用指定的语言环境,制定字符串格式和参数生成格式化

    2024年02月15日
    浏览(47)
  • 【Java】Java中解决跨域问题的几种方法(建议收藏)

    我们在开发过程中经常会遇到前后端分离而导致的跨域问题,导致无法获取返回结果。跨域就像分离前端和后端的一道鸿沟,君在这边,她在那边,两两不能往来. 定义 跨域(CORS)是指不同域名之间相互访问。跨域,指的是浏览器不能执行其他网站的脚本,它是由浏览器的同

    2024年02月11日
    浏览(45)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包