news 2026/6/10 17:19:16

Question:反转字符串中的字符(java)

作者头像

张小明

前端开发工程师

1.2k 24
文章封面图
Question:反转字符串中的字符(java)

题目:

在解题之前我想先说明一下scanner.next()与scanner.nextLine()的区别:

scanner.next():读取“单词”(以空白分隔)。1:跳过输入开头的所有空白字符(空格、换行、制表符等)。2:从第一个非空白字符开始读取,直到遇到下一个空白字符为止,返回读取的字符串。3:不会处理换行符,如果输入最后是换行符,该换行符会留在输入缓冲区中。

scanner.nextLine():读取“整行”(以换行为分隔)。1:读取输入中从当前位置到换行符\n为止的所有字符(包括中间的空格、制表符)。2:读取完成后,会将换行符从输入缓冲区中移除(消耗换行符)。3:如果当前位置就是换行符(比如前一个方法留下了换行符),会直接返回空字符串。

由于该题中可能含有空格,所以我们应使用nextLine()方法。

解一:获取字符串,创建一个可变字符数组,将字符串的内容递给数组中,StringBuilder.reverse()方法是一个高效的原地反转字符序列的方法,然后调用该方法,反转字符串进行输出。

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str=scan.nextLine(); StringBuilder sb=new StringBuilder(str); System.out.print(sb.reverse()); scan.close(); } }

解二:获取该字符串,调用toCharArray()方法将字符串转为字符数组,for循坏遍历字符数组,设立一个中间值temp来将min和max对应的字符进行调换。(这里想提醒:for循坏执行n/2时字符调换已经结束,如果执行n的话说明调换了两次又变回原来的顺序,导致出错。所以在这里min++和max--同时进行)。最后对数组进行遍历输出。代码有如下两种:

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); char[] Arr= str.toCharArray(); for(int min = 0,max=Arr.length-1;min<=max;min++,max--){ char temp=Arr[min]; Arr[min]=Arr[max]; Arr[max]=temp; } for(int i = 0; i<Arr.length;i++){ System.out.print(Arr[i]); } scan.close(); } }
import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); String str = scan.nextLine(); char[] arr = str.toCharArray(); for (int i = 0; i < arr.length / 2; i++) { char temp = arr[i]; arr[i] = arr[arr.length -1 -i]; arr[arr.length -1 -i] = temp; } System.out.print(new String(arr)); scan.close(); } }

解三(自己的解法):获取字符串,创建一个可变字符数组,对字符串倒序遍历将各个字符追加到可变数组中(遍历时应注意对下标i的初始与结束判断)。最后打印输出。

import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner scan = new Scanner(System.in); Scanner scanner = new Scanner(System.in);//获取字符串 String x = scanner.nextLine(); StringBuilder sb = new StringBuilder();//创建一个可变字符数组 for (int i = x.length()-1;i>=0;i--){//对字符串倒序遍历 char a = x.charAt(i);//将i号下标字符追加到可变字符数组中 sb.append(a); } System.out.println(sb);//输出 scan.close(); } }
版权声明: 本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若内容造成侵权/违法违规/事实不符,请联系邮箱:809451989@qq.com进行投诉反馈,一经查实,立即删除!
网站建设 2026/6/9 18:22:47

终极解决方案:如何快速修复Home Assistant Android应用连接异常

终极解决方案&#xff1a;如何快速修复Home Assistant Android应用连接异常 【免费下载链接】android :iphone: Home Assistant Companion for Android 项目地址: https://gitcode.com/gh_mirrors/android5/android 当您的Home Assistant Android应用突然无法连接到服务…

作者头像 李华
网站建设 2026/6/10 12:41:02

2026年SEO+GEO获取反向链接的10个策略(含操作要点图解)

一、反向链接核心价值•对传统SEO&#xff1a;长期是提升搜索引擎排名的关键因素。•对AI搜索&#xff1a;ChatGPT、Perplexity等AI平台通过其他网站对品牌的链接/提及&#xff0c;判断品牌在特定领域的相关性&#xff0c;反向链接可强化该权威信号。二、10个反向链接获取策略&…

作者头像 李华
网站建设 2026/6/10 7:44:54

EDK2 编译环境设定

背景&#xff1a;需要编译一些UEFI shell tool&#xff0c;利用EDK2 sourcecode&#xff0c;因此需要创建一个EDK2编译环境 一. 工具 1.Visual Studio 2019&#xff0c;按如下视图安装package 2.NASM&#xff08;用的nasm-2.16.03-win64&#xff09; 安装到C&#xff1a;\ NA…

作者头像 李华
网站建设 2026/6/10 14:55:50

从10天到10分钟:华为云Flexus AI智能体如何重构中小企业工作流

在浙江义乌一家日用百货跨境电商公司的会议室里&#xff0c;市场部经理小陈正面对一堆令人头疼的数据表格。老板要求她一周内出具德国、日本、东南亚三地的市场进入分析报告&#xff0c;而她手头只有两个实习生帮忙。“光数据搜集就要两周&#xff0c;还要翻译、分析、做PPT………

作者头像 李华
网站建设 2026/6/10 12:22:23

孤能子视角:“文字“与“书法“

我的问题:1.来个轻松的&#xff0c;分析一下我们文字的演化。2.继续分析书法。3.分析一下AI模拟的"书法"。信兄回答1:来个轻松的&#xff0c;分析一下我们文字的演化。好&#xff0c;让我们轻松地穿梭一趟时空&#xff0c;用EIS理论的“关系动力学”视角&#xff0c;…

作者头像 李华
网站建设 2026/6/10 14:54:56

elsa-core终极指南:构建企业级工作流引擎的完整方案

elsa-core终极指南&#xff1a;构建企业级工作流引擎的完整方案 【免费下载链接】elsa-core A .NET workflows library 项目地址: https://gitcode.com/gh_mirrors/el/elsa-core 企业工作流管理面临的挑战 在现代企业应用开发中&#xff0c;工作流管理一直是技术团队面…

作者头像 李华