Java 中交换首尾单词并反转中间字符2024年9月10日 | 阅读 6 分钟 在 Java 中交换首尾单词并反转中间字符,是字符串操作的一个创造性方法,而字符串操作是编程中的一个基本方面。该任务涉及在改变字符串中第一个和最后一个单词的位置的同时,反转它们之间字符的顺序。 示例 1 输入: "Java programming language tutorial" 输出: "tutorial egaugnal gnimmargorp Java" 示例 2 输入: "Data structures and algorithms" 输出: "algorithms dna serutcurts Data" 示例 3 输入: "Machine learning is fascinating" 输出: "fascinating si gninrael Machine" 方法:使用 ASCII 值用于交换首尾单词和反转字符串中间字符的 Java 代码利用了 Java 的字符串操作能力,而不是 ASCII 值。它通过字符遍历和字符串连接来实现更改,展示了一种比低级 ASCII 操作更直接的文本处理方法。该方法强调了使用内置字符串函数进行常见字符串操作的效率。 算法步骤 1: 输入一个字符串 inputString 并计算其长度 stringLength。 步骤 2: 初始化两个空字符串 firstWord 和 lastWord,用于存放首尾单词。 步骤 3: 使用循环,从开头遍历直到遇到第一个空格,从而识别 lastWord。 步骤 4: 使用另一个循环,从结尾向后遍历直到从该结尾遇到第一个空格,从而识别 firstWord。 步骤 5: 初始化一个空字符串 middleReversed,用于存放反转后的中间部分。 步骤 6: 通过向后遍历中间部分(不包括首尾单词)并将每个字符附加到 middleReversed 来反转中间部分。遇到空格时也一并包含。 步骤 7: 将 firstWord、middleReversed 和 lastWord 与它们之间的空格连接起来,形成最终的 String。 实施文件名: StringSwapper.java 输出 Swapped and Reversed String: tutorial egaugnal gnimmargorp Java 时间复杂度 O(n): 线性,因为操作的执行时间与输入字符串的长度成正比。 辅助空间 O(1): 视作常数,重点关注算法的内在逻辑,而不是处理数据的空间。 方法:使用 split() 方法该方法使用 String 类的 split() 方法来操作给定的字符串,通过交换其首尾单词并反转中间部分的字符。 算法步骤 1: 定义一个名为 performSwapAndReverse 的方法,该方法接受一个字符串 input 和其长度 size 作为参数。 步骤 2: 将 input 分割成一个单词数组,并将第一个单词存储在临时变量 temp 中。 步骤 3: 交换数组中的第一个和最后一个单词,并将最后一个单词重新赋值给 temp。 步骤 4: 初始化一个空字符串 reversedMiddle。 步骤 5: 对于从第二个到倒数第二个的每个单词,将其反转并附加到 reversedMiddle。 步骤 6: 打印修改后的 String:首尾交换的单词,中间是 reversedMiddle。 步骤 7: 在 main 方法中,定义一个示例输入字符串 exampleInput。计算 exampleInput 的长度并将其存储在 inputSize 中。 步骤 8: 调用 performSwapAndReverse 方法,传入 exampleInput 和 inputSize。 实施文件名: StringManipulation.java 输出 Modified String: Java ni elpmaxe esrever dna Swap 时间复杂度: 上述代码的时间复杂度为 O(n)。代码的时间复杂度为线性,因为需要分割字符串并反转中间字符,这取决于输入字符串的长度。 辅助空间: 代码的辅助空间为 O(n)。辅助空间为线性,由 split 操作生成的单词数组所需的存储以及反转中间部分所需的字符串驱动。 下一个主题Java 中的 Kadane 算法 |
计算机科学和编程领域有许多有趣的问题,它们不仅挑战开发人员,还为高效的算法解决方案提供了见解。其中一个问题是范围加法问题,它经常在各种面试、竞争性设计竞赛和实际应用中遇到...
阅读 6 分钟
向量是既有大小又有方向的数学实体。在计算机编程中,向量通常用于表示同时具有大小和方向的量,例如速度、力、位移。Java 作为一种流行的面向对象编程语言,通过……为向量运算提供了内置支持。
阅读 8 分钟
? 通过使用字符串字面量。示例:文件:StringPerformance.java public class StringPerformance { public static void main(String[] args) { long startTime = System.currentTimeMillis(); for (int i = 0; i < 100000; i++) { String str1 = "India"; String str2= "India"; } long endTime = System.currentTimeMillis(); System.out.println("创建字面量 String 所花费的时间:" + (endTime - startTime)...
阅读1分钟
给我们一个整数计数,与一个由小写英文字母组成的字符串 'str' 相关联。此特定问题的目标是查找“相等计数子串”。当子串中的每个不同字母都出现恰好 count 次时,该子串称为...
阅读 6 分钟
对于任何软件应用程序来说,性能优化都至关重要,Java 也不例外。通过正确的技术和对语言的深入理解,我们可以提高 Java 应用程序的效率和响应能力。在本节中,我们将探讨一些实用的技巧和技术,以...
阅读 4 分钟
java.net.ConnectException: Connection refused: 当客户端-服务器架构中的软件请求从客户端与服务器建立 TCP 连接时,Java 中最常见的网络异常类型是“connection refused: connect”。为了解决通信问题,我们必须谨慎处理此异常……
7 分钟阅读
JSch(Java 安全通道)是一个流行的 Java 库,它允许开发人员通过 SSH 连接到远程服务器,并使用 SFTP(安全文件传输协议)执行安全文件传输。它广泛用于自动化文件传输、远程命令执行和安全身份验证。分步过程 步骤...
阅读 6 分钟
Java Swing 是一个强大的框架,用于为桌面应用程序创建图形用户界面 (GUI)。Swing 的基本组件之一是 JFrame,它充当应用程序的主窗口。在 JFrame 中,我们可以添加各种组件,如按钮、标签和文本...
5 分钟阅读
图像处理是一项用于对图像执行操作以增强图像或提取有用信息的技术。图像处理中的一项常见任务是将彩色图像转换为其负片。在本节中,我们将探讨如何使用 Java 来实现此目的。什么是...
阅读 4 分钟
在 Java 中,数组通常用于存储数据集合。在处理数组时,您可能会遇到需要根据特定标准执行操作的情况,例如打印奇数且位于偶数索引处的元素。在本节中,...
阅读 3 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India