如何按数字和字母拆分字符串?

17 Mar 2025 | 阅读 2 分钟

问题陈述: 提供了一个字母和数字的列表。如何使用字母和数字之间的边界,或者反之,将字符串拆分为仅包含字母或数字的子字符串。

不使用预定义函数拆分字符串

将字符串 str 分为三个部分:一个数字部分;一个字母部分;以及一个包含特殊字符的部分。

示例


步骤:

  1. 确定字符串的长度。
  2. 单独扫描字符串中的每个字符 (ch)
    • 如果 (ch 是数字),则将其添加到 res1 字符串。
    • 或者,如果 (ch 是字母),则将一个字符串添加到 res2。
    • 否则,将其添加到 res3 字符串。
  3. 打印每个字符串。我们将得到三个字符串:一个包含数字组件的字符串,一个不包含数字组件的字符串,以及一个包含特殊字符的字符串。

程序

输出

How to Split a String between Numbers and Letters

时间复杂度: 前述方法的时间复杂度为 O(n),其中 n 是字符串的长度。

辅助空间: 给出代码的空间复杂度为 O(n),其中 n 是字符串的长度。

我们还可以使用正则表达式进行拆分,例如 (?<=\D)(?=\d)。类似这样

程序

输出

How to Split a String between Numbers and Letters

所以有很多方法可以按数字和字符拆分字符串。以下是其中一些方法:

方法:1

输出

How to Split a String between Numbers and Letters

方法:2

输出

How to Split a String between Numbers and Letters

方法:3

输出

How to Split a String between Numbers and Letters
下一个主题Java 字符串处理