当前位置: 首页 > news >正文

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(); } }
http://www.cnnetsun.cn/news/135063.html

相关文章:

  • Kotaemon财务报表解读:非专业人士也能看懂财报
  • Amazon EC2 实例类型命名约定
  • FingerJetFXOSE:解锁指纹识别开发新境界的开源利器
  • 程序员必看:Transformer如何解决RNN的长距离依赖问题,建议收藏!
  • 高效笔记神器:DailyNotes如何重塑你的工作流
  • 终极跨平台书签同步指南:BookmarkHub免费完整解决方案
  • 5分钟掌握Python PSD解析:PSD Tools完整开发指南
  • Windows触控板驱动终极指南:解锁Apple设备全部潜能
  • COMSOL网格划分:有限元分析中的基础与技巧
  • Langflow第三方组件完全指南:从基础使用到高级集成
  • 【值得收藏】360大模型安全白皮书深度解析:五大风险+双轨防御+实战案例
  • 模型漂移的检测与应对:软件测试者的实战手册
  • 金融科技的智能风控测试
  • Open WebUI重排序终极指南:三步提升搜索精准度90%
  • 测试预算的动态优化:从静态规划到敏捷响应
  • 【树莓派pico/pico2】在pico-sdk中自定义板子
  • 【Java + Elasticsearch全量 增量同步实战】
  • 科研数据探索新维度:NSFC项目智能分析系统深度体验
  • 7、利用CardSpace和Windows Communication Foundation开发软件+服务
  • Scada-LTS开源项目完整使用指南:从零开始构建工业监控系统
  • 浏览器插件跨平台兼容性终极指南:5个核心技巧解决Chrome/Edge/Firefox差异
  • Godot-MCP革命:用AI对话创造你的梦想游戏世界
  • 大明开国勋臣的三重贡献:李善长、胡惟庸与蓝玉的历史功绩再审视
  • Python GUI终极指南:5步掌握DearPyGui的完整开发流程
  • Heroicons 2.1.5版本实战指南:23个新图标如何提升你的开发效率
  • python-flask-django学习课程辅助系统设计与实现_s01d6vz0
  • FLORIS风电场仿真实战:从入门到精通的终极指南
  • 机器学习图表设计专家:快速创建专业级科研可视化
  • 惠普游戏本终极性能控制指南:OmenSuperHub完全实战教程
  • 煤矿高压电缆绝缘监测技术深度解析:从局部放电到智能预警的科技防线