字符串的六种遍历方式

在 Java 中,有多种遍历字符串的方法。以下是几种常见的遍历字符串的方法,并附有示例代码

1. 使用 for 循环

这是最常见和基础的遍历方法,通过索引访问每个字符。

public class StringTraversal {public static void main(String[] args) {String str = "Hello World";// 使用 for 循环System.out.println("Using for loop:");for (int i = 0; i < str.length(); i++) {char ch = str.charAt(i);System.out.println(ch);}

2. 使用增强型 for 循环

通过将字符串转换为字符数组,然后使用增强型 for 循环遍历。

        // 使用增强型 for 循环System.out.println("Using enhanced for loop:");for (char ch : str.toCharArray()) {System.out.println(ch);}

3. 使用 while 循环

通过索引和 while 循环遍历字符串。

        // 使用 while 循环System.out.println("Using while loop:");int i = 0;while (i < str.length()) {char ch = str.charAt(i);System.out.println(ch);i++;}

4. 使用 split 方法

基于分隔符分割字符串,按单词遍历。

        // 使用 split 方法System.out.println("Using split method:");String[] tokens = str.split(" ");for (String token : tokens) {System.out.println(token);}

5. 使用 Stream API

通过 Java 8 引入的 Stream API 可以方便地进行各种操作,包括遍历字符串。

        // 使用 Stream APISystem.out.println("Using Stream API:");//str.chars(),返回一个 IntStream,其中包含字符串 str 中每个字符的 Unicode 代码点。IntStream stream = str.chars();stream.forEach(ch -> System.out.println((char) ch));

6. 使用迭代器(Iterable 接口)

虽然字符串本身不是直接 Iterable 的,但可以通过一些转换方式来实现迭代。

public class Main {public static void main(String[] args) {String str = "Hello World";Iterable<Character> iterable = () -> str.chars().mapToObj(c -> (char)c).iterator();for (char ch : iterable) {System.out.println(ch);}}
}

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

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

相关文章

windows 安装docker

一、安装步骤 Windows Docker 安装 | 菜鸟教程 二、本地环境 操作系统&#xff1a;windows11 网络环境&#xff1a;科学上网 三、资源下载 稍后放到网盘后给出下载链接 四、遇到的问题 1、docker run hello-world身份验证错误 问题现象 $: docker run hello-world Un…

C#二进制、十进制、十六进制数据转换

目录 1、10进制整数转二进制BOOL数组 2、二进制BOOL数组转10进制整型 3、10进制转16进制字符串 4、16进制字符串转10进制 5、16进制字符串转二进制BOOL数组 6、二进制BOOL数组转16进制字符串 1、10进制整数转二进制BOOL数组 /// <summary>/// 10进制整数转二进制BO…

CTE在复杂查询条件下的重要作用

随着数据量和数据结构的日益复杂&#xff0c;数据库查询变得越来越困难。复杂的查询条件通常会涉及多张表、多级联接和嵌套查询。为了简化和优化这些复杂查询&#xff0c;CTE&#xff08;Common Table Expressions&#xff0c;即公用表表达式&#xff09;作为一种强有力的工具被…

Arkui 框架Worker线程

OpenHarmony的ArkUI框架提供了Worker和TaskPool两种多线程编程方式&#xff0c;以支持在应用程序中执行耗时操作而不影响主线程的性能。以下是关于Worker的关键用法和特性&#xff1a; 1. **基本概念与运作原理** - **Worker线程的定义**&#xff1a;Worker是OpenHarmony中一个…

word图题表题公式按照章节编号(不用题注)

预期效果&#xff1a; 其中3表示第三章&#xff0c;4表示第3章里的第4个图。标题、公式编号也是类似的。 为了达到这种按照章节编号的效果&#xff0c;原本可以用插入题注里的“包含章节编号” 但实际情况是&#xff0c;这不仅需要一级标题的序号是用“开始->多级列表”自动…

SQL注入漏洞—SQL注入简介与原理

一、SQL注入基础 1.1 什么是SQL注入漏洞 SQL注入漏洞从1998年圣诞节大火以来长盛不衰&#xff0c;虽然开发人员想出各种方法对他进行围追堵截&#xff0c;却始终无法将其赶尽杀绝&#xff0c;SQL注入的根本原因就是将SQL代码插入或添加到应用&#xff08;用户&#xff09;的输…

docker+[nginx] 部署nacos2.x 集群

docker+[nginx] 部署nacos2.x 集群 由于机器有限,本文搭建伪集群 准备: nacos1 :192.168.50.9:8848 nacos2:192.168.50.9:8858 nacos3:192.168.50.9:8868 mysql nginx 【可选,见文末】 创建容器共享网络 便于直接使用容器名连接mysql,如果不创建,连接mysql直接使用i…

Transformer教程之什么是Transformer

在过去的几年里&#xff0c;Transformer 模型已经成为了自然语言处理&#xff08;NLP&#xff09;领域的主流技术。无论是机器翻译、文本生成还是语音识别&#xff0c;Transformer 都表现出了非凡的性能。那么&#xff0c;什么是 Transformer&#xff1f;它是如何工作的&#x…

WPF----进度条ProgressBar(渐变色)

ProgressBar 是一种用于指示进程或任务的进度的控件&#xff0c;通常在图形用户界面&#xff08;GUI&#xff09;中使用。它提供了一种视觉反馈&#xff0c;显示任务的完成程度&#xff0c;帮助用户了解任务的进展情况。 基本特性 Minimum 和 Maximum 属性&#xff1a; 这些属…

猫也有自动厕所上了吗?自费分享好用的智能猫砂盆,看完不亏。

还有人在用普通猫砂盘吗&#xff1f;之前我也是用的普通猫砂盘&#xff0c;但我发现只要我在上班时间&#xff0c;我就无法顾忌到小猫的便便&#xff0c;但又不想回家就闻到一股臭味&#xff0c;更何况现在夏天也快到了&#xff0c;便便残留一会就会发酵发臭&#xff0c;导致生…

求出某空间曲面下的体积

求出某空间曲面下的体积 flyfish 用小长方体的体积和来逼近该体积 import numpy as np import matplotlib.pyplot as plt import matplotlib.animation as animation# 定义函数 f(x, y) def f(x, y):return np.sin(np.pi * x) * np.sin(np.pi * y)# 创建网格 x np.linspac…

postgre事务id用完后,如何解决这个问题

在PG中事务年龄不能超过2^31 &#xff08;2的31次方2,147,483,648&#xff09;&#xff0c;如果超过了&#xff0c;这条数据就会丢失。 PG中不允许这种情况出现&#xff0c;当事务的年龄离2^31还有1千万的时候&#xff0c;数据库的日志中就会 有如下告警&#xff1a; warning:…

安全感爆棚,锁定六氟化硫SF6气体泄漏报警监测系统

一、概述 六氟化硫SF6气体已有百年历史&#xff0c;它是法国两位化学家Moissan和Lebeau于1900年合成的人造惰性气体&#xff0c; 1947年提供商用。当前SF6气体主要用于电力工业中。化学性质稳定。微溶于水、醇及醚&#xff0c;可溶于氢氧化钾。不与氢氧化钠、液氨、盐酸及水起…

ES6的代理模式-Proxy

语法 target 要使用 Proxy 包装的目标对象&#xff08;可以是任何类型的对象&#xff0c;包括原生数组&#xff0c;函数&#xff0c;甚至另一个代理handler 一个通常以函数作为属性的对象&#xff0c;用来定制拦截行为 const proxy new Proxy(target, handle)举个例子 <s…

【凝聚态场论与多体计算】0.开篇前言

0. 写在最开始 本系列专栏可以说是捡起这个账号&#xff0c;在川大暑期夏令营开始前&#xff0c;既不愿意打游戏度日&#xff0c;又不愿意闲聊&#xff0c;科研结项等东西也是一团乱麻&#xff0c;属于是打发时间的最后尝试。 众所周知&#xff0c;你可以把 CSDN 当作存放作业…

题目 2668: 蓝桥杯2022年第十三届省赛真题-最长不下降子序列

题目 2668: 蓝桥杯2022年第十三届省赛真题-最长不下降子序列 原题链接&#xff1a;完成情况&#xff1a;解题思路&#xff1a;代码解释主函数 main辅助函数 computeLNDS 代码说明复杂度分析优化建议 参考代码&#xff1a;错误经验吸取 原题链接&#xff1a; 题目 2668: 蓝桥杯…

C++的模板(八):子系统

平常所见的大部分模板代码&#xff0c;模板所传的参数类型&#xff0c;到了模板里面&#xff0c;或实例化为对象&#xff0c;或嵌入模板内部结构中&#xff0c;或在模板内又派生了子类。不管怎样&#xff0c;最终他们在模板内&#xff0c;直接或间接&#xff0c;都实例化成对象…

常见的Java开发难题包含解决办法内存泄漏异常处理代码质量和维护

常见的Java开发难题包含解决办法内存泄漏异常处理代码质量和维护 学习总结 1、掌握 JAVA入门到进阶知识(持续写作中……&#xff09; 2、学会Oracle数据库入门到入土用法(创作中……&#xff09; 3、手把手教你开发炫酷的vbs脚本制作(完善中……&#xff09; 4、牛逼哄哄的 I…

实践案例:使用Jetpack Navigation创建一个新闻应用

在这个实践案例中&#xff0c;我们将使用Jetpack Navigation创建一个简单的新闻应用。这个应用将包含以下功能&#xff1a; 新闻列表页面&#xff1a;显示一组新闻文章。新闻详情页面&#xff1a;显示选定新闻文章的详细信息。用户资料页面&#xff1a;显示用户的资料信息。 …

从爬取到分析:Faraday爬取Amazon音频后的数据处理

什么是Faraday&#xff1f; Faraday是一个简单、灵活的高级爬虫框架&#xff0c;支持多种编程语言。它提供了一套丰富的API&#xff0c;允许开发者快速构建复杂的爬虫应用。Faraday的主要特点包括&#xff1a; 模块化设计&#xff1a;易于扩展和自定义。多语言支持&#xff1…