java遍历字符串的方法

news/2025/3/15 17:54:37/

 

在 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);
    }
    ```

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

相关文章

链表基础知识

1.链表必知必会 什么是链表? 链表是一种通过指针串联在一起的线性结构&#xff0c;每一个节点由两部分组成&#xff0c;一个是数据域一个是指针域&#xff08;存放指向下一个节点的指针&#xff09;&#xff0c;最后一个节点的指针域指向null&#xff08;空指针的意思&#…

Qt SSL/TLS 安全通信类:构建安全网络应用的关键组件

Qt SSL/TLS 安全通信类&#xff1a;构建安全网络应用的关键组件 引言&#xff08;Introduction&#xff09;SSL/TLS 的重要性&#xff08;The Importance of SSL/TLS&#xff09;本文涉及的主题简介&#xff08;Introduction to the Topics Covered in This Article&#xff09…

机器学习和深度学习在气象中的应用(台风预报只能订正、风速预报订正、LSTM 方法预测 ENSO)

查看原文>>>Python人工智能在气象中的实践技术应用 目录 专题一、Python 和科学计算基础 专题二、机器学习和深度学习基础理论和实操 2.1 机器学习和深度学习基础理论 2.2 sklearn 和pytorch 库 专题三 、气象领域中的机器学习应用实例 3.1 GFS 数值模式的风速…

docker安装redis

首先到dockerhub搜索redis docker pull redis docker pull redis准备redis的配置文件,因为需要redis的配置文件,这里最好去redis中文官方网站去下载一个redis,使用里面的配置文件即可. 我使用的是redis4.0.11中的配置文件 修改redis.conf配置文件 主要修改的位置如下 # bin…

【linux】基于环形队列的生产者消费者模型(信号量)

文章目录 一、引入二、信号量2.1 信号量的概念2.2 信号量的PV操作2.3 信号量接口2.3.1 信号量初始化sem_init2.3.2 信号量销毁sem_destroy2.3.3 信号量等待sem_wait(P)2.3.4 信号量发布sem_post(V) 三、基于环形队列的生产者消费者模型3.1 引入环形队列3.2 环形队列的访问3.3 代…

MySQL运维16-数据文件及表空间

文章目录 1、数据文件分类1.1、db.opt文件1.2、.frm文件1.3、.MYD文件1.4、.MYI文件1.5、ibdata*问你件1.6、.idb文件1.7、.trg文件 2、系统表空间及ibdata文件2.1、概述2.2、系统表空间数据文件的增加2.2.1、数据文件增加的应用场景2.2.2、数据文件增加的步骤2.2.3、数据文件增…

网络基础2【HTTP、UDP、TCP】

目录 一.应用层 1.协议 2.网络版计算器 3.HTTP协议 &#xff08;1&#xff09;了解url和http &#xff08;2&#xff09;http的用处 &#xff08;3&#xff09;urlencode和urldecode &#xff08;4&#xff09;http协议格式 4.HTTPS协议 &#xff08;1&#xff09;加密…

整型在内存中的存储

在计算机底层&#xff0c;所有数据最终都会被表示为二进制形式。整型也不例外。本文将介绍在C语言中如何定义和操作整型变量&#xff0c;并解释整型在内存中的存储方式。 整型变量的定义和使用 在C语言中&#xff0c;可以用int关键字来定义一个整数型变量。例如&#xff1a; …