java遍历字符串的方法

news2024/10/5 18:28:07

 

在 java中,我们需要遍历字符串,如何遍历呢?首先我们先了解一下遍历的概念: 在我们的计算机中,存储的都是二进制数据,为了方便存储和管理,我们把一段数据分成多个字符串。在 java中,遍历字符串是使用 set ()方法进行的。 set ()方法可以使用构造函数和自动构造函数进行遍历操作。另外还可以通过 findall ()方法进行遍历操作。在下面我们就来介绍一下如何通过 set ()方法进行遍历字符串:

  • 1、使用构造函数

    首先我们使用构造函数来遍历字符串: 在这里我们调用构造函数 set ()方法,调用此方法会自动创建一个空列表。然后我们把这个空列表的内容拷贝到字符串的末尾,并赋值给 str。这样就遍历完成了。set ()方法在使用的时候会进行一下检查,看是否为空,如果不是空的话,就会返回 true,否则会返回 false。 通过上面的代码我们可以看到: 第一行和第二行使用了构造函数遍历字符串,但是并没有创建空列表;第三行和第四行使用了自动构造函数遍历字符串,但是并没有创建空列表;第五行和第六行使用了构造函数和自动构造函数都创建了一个空列表,第六行使用了构造函数和自动构造函数都创建了一个空列表,第七行和第八行使用了自动构造函数创建了两个空列表。最后一列使用了自动构造函数创建了一个空数组。 这里我们可以看到:第一行和第二行使用的是自动构造函数遍历字符串;第三行和第四行使用的是构造函数遍历字符串;第七格和第八格使用的是自动构造函数遍历字符串。 那么接下来我们来了解一下为什么会出现上面的问题?原来是因为在 java中使用构造函数遍历字符串,可以一次性遍历多个字符串。而采用自动构造函数每次遍历的时候只能遍历空数组,所以就会出现上述的问题。 而自动构造函数的返回类型是 null,也就是说如果我们返回的是 null类型的值,那么这个空列表就不会被创建。上面我们已经介绍完了如何遍历字符串: 通过上面的分析我们知道,如果采用自动构造函数遍历字符串的话,每次遍历空数组都会创建一个空列表。这样在遍历完之后还需要再创建一个空列表,这样就造成了内存的浪费。所以我们想要提高遍历效率的话,尽量采用构造函数进行遍历操作。

  • 2、使用自动构造函数

    自动构造函数是一种特殊的方法,它是自动把一个对象转换成一个新的对象,当你在一个对象中声明一个自动构造函数时,自动构造函数会创建这个对象的子对象。自动构造函数使用相同的方法进行遍历操作,下面就来介绍一下如何使用自动构造函数遍历字符串: 我们来看一下下面这个示例代码: 上面这个代码实现了遍历字符串: 上面这个代码也是遍历字符串,但是它使用的是自动构造函数,它把字符串转换成了一个新的对象。注意:上面这个代码也是不可以调用 set ()方法进行遍历操作的。 下面再来看一下如何使用自动构造函数进行遍历字符串: 上面这个代码使用了自动构造函数,它创建了一个新的对象,并且对对象进行了初始化,可以使用 start ()方法来启动对象。但是由于 start ()方法是静态方法,所以在执行的时候会把程序运行到 start ()方法上,这样就会影响程序的执行速度。

  • 3、使用 findall ()方法

    findall ()方法可以用来遍历一个字符串,在遍历过程中,该方法会不断的遍历字符串的末尾。如果要在多个字符串中进行遍历,该方法会返回多个字符串。这里需要注意一下, findall ()方法不会遍历最后一个字符串,因为该方法不会遍历最后一个字符串的末尾,也不会遍历第一个字符串的末尾。 在使用 findall ()方法进行遍历时,需要注意以下两点: ①、当遍历结束后,可以对 findall ()方法返回的第一个字符串进行删除操作。但是由于 findall ()方法返回的第一个字符串不是最后一个字符串的末尾,所以如果想要删除最后一个字符串的末尾,需要重新定义一个新的 findall ()方法。 在上面我们了解了 set ()方法和 findall ()方法进行遍历操作时所使用的不同操作。在 java中还可以使用其他一些遍历的方法: *遍历链表中各个元素 上面我们已经介绍了三种遍历数据结构: set ()、 findall ()和构造函数。下面我们介绍一下自动构造函数。

  • 4、使用自动构造函数和 findall ()方法的优缺点对比

    自动构造函数:优点是,我们只需要定义一次自动构造函数,就可以创建任意多个对象。缺点是,自动构造函数的效率比较低,并且我们需要创建对象的时候,就需要调用自动构造函数,不方便。 findall ()方法:优点是,当我们给对象赋值时,默认值是一个整数。缺点是, findall ()方法的效率比较低,如果要返回的对象不为零则会导致程序崩溃。 自动构造函数和 findall ()方法各有优缺点。我们应该根据实际情况来选择使用哪种方法来进行遍历操作。 set ()方法可以遍历字符串; set ()方法需要在构造函数中定义对象才可以进行遍历操作;

  • 常用的java遍历字符串代码 :

  • 1. 使用for循环遍历字符串:
    ```
    String str = "hello world";
    for (int i = 0; i < str.length(); i++) {
    char c = str.charAt(i);
    System.out.println(c);
    }
    ```
    2. 使用增强for循环遍历字符串:
    ```
    String str = "hello world";
    for (char c : str.toCharArray()) {
    System.out.println(c);
    }
    ```
    3. 使用while循环遍历字符串:
    ```
    String str = "hello world";
    int i = 0;
    while (i < str.length()) {
    char c = str.charAt(i);
    System.out.println(c);
    i++;
    }
    ```
    4. 使用Iterator遍历字符串:
    ```
    String str = "hello world";
    Iterator<Character> iterator = str.chars().mapToObj(c -> (char) c).iterator();
    while (iterator.hasNext()) {
    char c = iterator.next();
    System.out.println(c);
    }
    ```

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/416562.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

BM36-判断是不是平衡二叉树

题目 输入一棵节点数为 n 二叉树&#xff0c;判断该二叉树是否是平衡二叉树。 在这里&#xff0c;我们只需要考虑其平衡性&#xff0c;不需要考虑其是不是排序二叉树 平衡二叉树&#xff08;Balanced Binary Tree&#xff09;&#xff0c;具有以下性质&#xff1a;它是一棵空…

LabVIEW-簇数据类型

簇数据类似于 C 语言的结构体&#xff0c;创建时&#xff0c;首先将“簇”放置到前面板上&#xff1a; 然后放置簇内的元素&#xff0c;比如“数值输入控件”&#xff0c;当“簇框架”内边沿出现虚线框时&#xff0c;单击“数值输入控件”即可添加到簇中:在簇中也可以修改“数值…

常见网络协议汇总(一)

“网络协议”是指为完成特定的任务而制定的一套规则。网络协议通常用来表示数据传输中一组用于实现一个或多个OT模型级别的规则或规范。在通信时&#xff0c;网络协议定义了在通信时如何进行通信。今天海翎光电的小编就汇总了常见的网络协议&#xff0c;来一起看看。我们先回顾…

Linux基础IO(下)

Linux基础IO&#xff08;下&#xff09;FILE自己模拟实现fopen/fclose、fread/fwrite理解文件系统OS如何看待磁盘管理磁盘硬链接软连接ACM时间动态库和静态库见一见Linux下的库为什么要有库写一写库制作一个静态库制作一个动态库关于动静态库的一点小实验FILE 通过前面学习我们…

【SSM】Spring6(十二.Spring6集成MyBatis3.5)

文章目录1. 实现步骤2.具体实现2.1 准备数据库2.2 创建模块&#xff0c;引入依赖2.3 创建包2.4 创建Pojo类2.5 编写mapper接口2.6 编写Mapper配置文件2.7 编写service接口和service接口实现类2.8 编写jdbc.properties配置文件2.9 编写mybatis-config.xml配置文件2.10编写spring…

什么是数字“指纹”?

今天的网站收集有关访问者的大量信息&#xff0c;不仅用于广告、业务优化和用户体验&#xff0c;还用于安全目的。 除了 cookie 之外&#xff0c;网站还使用“指纹识别”来收集有关用户网络浏览器、硬件、设备配置、时区甚至行为模式的信息&#xff0c;以授权合法用户或取消对…

考虑可再生能源消纳的电热综合能源系统日前经济调度模型

目录 1 主要内容 模型示意图 目标函数 程序亮点 2 部分程序 3 程序结果 4 程序链接 1 主要内容 本程序参考文献《考虑可再生能源消纳的建筑综合能源系统日前经济调度模型》模型&#xff0c;建立了电热综合能源系统优化调度模型&#xff0c;包括燃气轮机、燃气锅炉、余热…

飞腾D2000 UOS下安装KVM虚拟机

其他的和x86环境都差不多&#xff0c;开了开发者模式后&#xff0c;virt-manager qemu-efi-aarch64 qemu-system 几个包补齐&#xff0c;启动libvirtd服务&#xff0c;查看日志&#xff0c;报以下日志&#xff0c; 4月 09 21:13:34 actionchen-PC systemd[1]: Starting Virtu…

SQL select总结(基于选课系统)

表详情&#xff1a; 学生表&#xff1a; 学院表&#xff1a; 学生选课记录表&#xff1a; 课程表&#xff1a; 教师表&#xff1a; 查询&#xff1a; 1. 查全表 -- 01. 查询所有学生的所有信息 -- 方法一&#xff1a;会更复杂&#xff0c;进行了两次查询&#xff0c;第一…

C语言实现扫雷教学

本篇博客会讲解&#xff0c;如何使用C语言实现扫雷小游戏。 0.思路及准备工作 使用2个二维数组mine和show&#xff0c;分别来存储雷的位置信息和排查出来的雷的信息&#xff0c;前者隐藏&#xff0c;后者展示给玩家。假设盘面大小是99&#xff0c;这2个二维数组都要开大一圈…

JavaDS——数据结构易错选择题总结

1. 下列关于线性链表的叙述中&#xff0c;正确的是&#xff08; &#xff09; A. 各数据结点的存储空间可以不连续&#xff0c;但它们的存储顺序与逻辑顺序必须一致 B. 各数据结点的存储顺序与逻辑顺序可以不一致&#xff0c;但它们的存储空间必须连续 C. 进行插入与删除时&am…

【数据结构】-快速排序的四种方法实现以及优化

作者&#xff1a;小树苗渴望变成参天大树 作者宣言&#xff1a;认真写好每一篇博客 作者gitee:gitee 如 果 你 喜 欢 作 者 的 文 章 &#xff0c;就 给 作 者 点 点 关 注 吧&#xff01; 快速排序前言一、hoare法&#xff08;左右指针法&#xff09;二、挖坑法三、前后指针法…

Midjourney AI绘画工具使用保姆级教程

系列文章目录 之后补充 文章目录系列文章目录写在前面一、Midjourney是什么&#xff1f;二、使用步骤1.完成Discord注册2.打开Midjourney官网3.开始画图后记写在前面 据悉&#xff0c;自3月30日&#xff0c;Midjourney已叫停免费试用服务&#xff0c;如上图所示。 创始人表示原…

代码随想录_226翻转二叉树、101对称二叉树

leetcode 226. 翻转二叉树 ​​​226. 翻转二叉树 给你一棵二叉树的根节点 root &#xff0c;翻转这棵二叉树&#xff0c;并返回其根节点。 示例 1&#xff1a; 输入&#xff1a;root [4,2,7,1,3,6,9] 输出&#xff1a;[4,7,2,9,6,3,1]示例 2&#xff1a; 输入&#xff1a;r…

【Android开发】App Bundle技术之动态功能模块

前言 自 2021 年 8 月起&#xff0c;Google Play 将开始要求新应用使用 Android App Bundle 进行发布。该格式将取代 APK 作为标准发布格式。虽然这个政策目前还无法影响到国内应用&#xff0c;但是作为Android开发者&#xff0c;对于新的动态还是要有一定的认识。 Android A…

产品经理必读|用户研究方法总结②

随着互联网的发展&#xff0c;用户体验设计逐渐成为了产品设计中不可或缺的一部分&#xff0c;而要进行好的用户体验设计&#xff0c;就需要进行用研。但是&#xff0c;如何选用合适的用研方法&#xff0c;却是很多产品经理和设计师面临的难题。下面&#xff0c;就让我们来探讨…

3.3 泰勒公式

学习目标&#xff1a; 复习微积分基础知识。泰勒公式是微积分的一个重要应用&#xff0c;因此在学习泰勒公式之前&#xff0c;需要复习微积分的基本概念和技能&#xff0c;包括函数的导数和微分、极限、定积分等。可以参考MIT的微积分课程进行复习和加强。 学习泰勒级数和泰勒…

ftp传输文件大小有限制吗 ftp文件传输工具有哪些

这两年&#xff0c;线上办公逐渐常态化&#xff0c;相信大家对ftp这个概念也比较熟悉了。ftp&#xff0c;即文件传输协议&#xff0c;线上办公就是用ftp软件进行文件传输的。那ftp传输文件大小有限制吗,ftp文件传输工具有哪些我们一起来看看。 一、ftp传输文件大小有限制吗 f…

还在手动测试?那是那还不知道Python自动化测试的强大之处

目录&#xff1a;导读 引言 1.关于自动化测试的概述 2.Selenium元素定位实战 写在最后 引言 Python自动化测试是当今广泛使用的自动化测试技术之一。它的简单易学、开放源代码和丰富的第三方库使得其成为程序员和测试人员的首选工具之一。 Python自动化测试不仅可以帮助我…

【LeetCode: 剑指 Offer 60. n个骰子的点数 | 数学+ 暴力递归=>记忆化搜索=>动态规划】

&#x1f34e;作者简介&#xff1a;硕风和炜&#xff0c;CSDN-Java领域新星创作者&#x1f3c6;&#xff0c;保研|国家奖学金|高中学习JAVA|大学完善JAVA开发技术栈|面试刷题|面经八股文|经验分享|好用的网站工具分享&#x1f48e;&#x1f48e;&#x1f48e; &#x1f34e;座右…