Move all special char to the end of the String in Java2025年3月29日 | 阅读 6 分钟 要在 Java 中将所有特殊字符添加到字符串的末尾,需要遍历输入字符串,识别字母数字字符,然后重新排列它们,使特殊字符位于末尾。Java 的内置字符分类方法可用于区分字母、数字和非字母数字字符,这对于此操作通常是必需的。结果应在不改变其相对顺序的情况下移走特殊字符,同时保留字母数字字符的顺序。 示例 1 输入 String str = "Hello!@#World123$%" 输出 结果字符串为 HelloWorld123!@#$% 解释 特殊字符 (!@#$%) 被移至末尾,保持其原始顺序,而所有字母数字字符 (HelloWorld123) 则移至开头。 示例 2 输入 String str = "2024Year!!!New#Goals" 输出 结果字符串为 2024YearNewGoals!!!# 解释 以相同的排列方式,特殊字符 (!!!#) 被移至末尾,字母数字字符 (2024YearNewGoals) 被置于开头。 示例 3 输入 String str = "Java$Is#Fun*&" 输出 结果字符串为 JavaIsFun$#*& 解释 在特殊字符 ($#*&) 之后,它们保持与之前相同的顺序,是字母数字字符 (JavaIsFun)。 朴素方法目标是遍历输入字符串并保留两个 字符串:一个包含常规字符(a, A, 1, '', 等),另一个包含特殊字符(@, $, 等)。最后连接这两个字符串并返回。 算法步骤 1: 初始化字符串 s。 步骤 2: 设置两个空的返回字符串,result1 用于字母数字字符,result2 用于特殊字符。 步骤 3: 在 循环 中遍历字符串 s 中的每个字符。 步骤 4: 验证 ch 是否对应于正则表达式 [a-zA-Z0-9\\s+]。 步骤 4.1: 如果是,则将 ch 添加到 result1。 步骤 4.2: 如果否,则将 ch 添加到 result2。 步骤 5: 返回 result 1(字母数字字符)和 result 2(特殊字符)的组合。 步骤 6: 调用带有输入字符串的 函数 后,打印更新后的结果。 实施文件名: CharactersTraversing.java 输出 The resulted string is given by 2024YearNewGoals!!!# 复杂度分析 上述代码的时间复杂度为 O(N),空间复杂度为 O(N),其中“N”表示字符串的长度。 方法:使用指针该方法提供了一个 Java 程序,该程序给定一个字符串,将特殊字符与字母数字字符和空格分开,并将特殊字符添加到末尾。moveCharToEnd 方法通过遍历输入字符串 str 中的每个字符来检查每个字符是否是空格或字母数字字符。如果是,则将其添加到 red 字符串。如果不是,则将其附加到 Char 字符串,该字符串用于存储特殊字符。该方法在循环结束后连接 res 和 Char 字符串并返回结果。 算法 步骤 1: 创建两个空字符串,char 用于特殊字符,res 用于字母数字字符和空格。 步骤 2: 遍历输入字符串 str 中的每个字符。 步骤 3: 确定索引 I 处的每个字符是空格还是字母数字字符(在 A, A, 0-9 之间)。 步骤 4: 如果字符是空格或字母数字字符,则将其添加到 res。 步骤 5: 如果不是,则将该字符(表示它是唯一字符)附加到 char。 步骤 6: 循环结束后,连接 res(包含字母数字字符和空格)与 char(包含特殊字符)。 步骤 7: 返回连接后的字符串。它以所有字母数字字符开头,以特殊字符结尾。 步骤 8: 打印返回的结果。当特殊字符添加到末尾时,原始字符串中的空格和字母数字字符的顺序将得以保留。 实施文件名: PointersCharacterTravaersing.java 输出 The resulted string is given by 2024YearNewGoals!!!# 复杂度分析 上述代码的时间复杂度为 O(N),其中 N 表示输入字符串的长度,空间复杂度为 O(N)。 方法:使用 'isalnum()' 方法下面的方法提供了一个 类,名为 isalnumMethod,它有一个 moveAllSpecialChars 方法,该方法将输入字符串中的特殊字符与常规字符(字母、数字和空格)分开。使用 character.isLetterOrDigit() 和 Character.isWhitespace() 来确定哪些字符是常规字符,该过程遍历字符串中的每个字符。常规字符被附加到 normalCh 字符串,而 specialCh 字符串则存储特殊字符。最终,通过连接这两个字符串,所有特殊字符都被移至字符串的末尾。 算法步骤 1: 从一个名为“special_ch”的空字符串开始,用于存储特殊字符,并从一个名为“normal_ch”的空字符串开始,用于存储常规字符。 步骤 2: 逐个遍历输入字符串中的每个“ch”字符。 步骤 3: 对提供的字符串中的每个字符应遵循以下步骤。 步骤 3.1: 使用 isalnum() 函数确定 ch 是否是字母数字字符、空格或空白字符。或者,使用 isspace() 方法。 步骤 3.2: 如果 ch 是空格或字母数字字符,则将其添加到 normal_chars 字符串。 步骤 3.3: 如果 ch 是唯一字符,则将其添加到 special_chars 字符串。 步骤 4: 遍历字符串中的每个字符后,返回 normal_ch 和 special_ch 的串联。 实施文件名: IsalnumMethod.java 输出 The resulted string is given by 2024YearNewGoals!!!# 复杂度分析 上述代码的时间复杂度为 O(N),其中 n 表示输入字符串的长度,空间复杂度为 O(N)。 下一个主题将 Java 对象转换为 JSON |
Java 是一种功能强大且灵活的编程语言,用于构建广泛的程序,从简单的命令行工具到复杂的组织结构。随着 Java 任务的规模和复杂性的增加,正确组织和Structuring代码变得至关重要。这就是...
阅读 6 分钟
集合的幂集表示所有可能子集的集合,包括空集和原集。如果一个集合包含 n 个元素,则幂集将包含 2^n 个子集。这是因为集合中的每个元素都可以...
阅读 8 分钟
是保存字符数据类型值的数组。在 Java 编程中,与 C 不同,字符数组不同于字符串数组,字符串或字符数组都不能以 NULL 字符终止。Java 语言使用 UTF-16 表示……
阅读 6 分钟
在 Java 中,包在消除命名冲突、控制访问以及使类、枚举、接口和注释的搜索和使用更容易方面发挥着重要作用。为了将相关的类、接口和子包分组,我们使用包。通过使用包:非常...
阅读 3 分钟
在将迭代器转换为列表时,开发人员可以利用 List 接口提供的强大技术,从而弥合顺序遍历与完全功能的集合操作之间的差距。与迭代器相比,列表是一种更灵活的数据结构。除了...
阅读 3 分钟
? Java 有不同的版本可用。由于兼容性问题,某些应用程序通常需要不同的版本。在本节中,我们将学习如何在 Windows 中使用 CMD 检查 Java 版本。版本字符串包含版本号,后面可以选择性地跟预发布版本...
阅读 2 分钟
图案程序通常在面试中被问及,以检查逻辑实现和循环概念。在前一节中,我们讨论了各种图案,如三角形、树形、星形等。在本节中,我们将学习如何通过 Java 打印皇冠图案...
阅读 6 分钟
数字图像分析和计算机视觉都严重依赖于图像处理。为了获得预期的结果,这需要图像的修改。Java 有许多功能强大且特性丰富的库。使用它们,我们可以操纵图像。图像方向的操纵...
阅读 6 分钟
在 Java 中,“>>>”运算符是右移零填充运算符。当在 Java 中使用右移运算符时,数字的位会向右移动,任何移出右端的位都会被丢弃。从...移位的位...
阅读 3 分钟
在 Java 中,int、char 和 float 等原始数据类型变量是按值传递的。这意味着变量值的副本会被发送到方法或函数。然而,在传递 String 等对象时,按引用传递的区别……
阅读 4 分钟
我们请求您订阅我们的新闻通讯以获取最新更新。
我们提供所有技术(如 Java 教程、Android、Java 框架)的教程和面试问题
G-13, 2nd Floor, Sec-3, Noida, UP, 201301, India