【发布时间】:2020-05-07 08:53:52
【问题描述】:
我想要实现的目标: 将字符串拆分为数字、标点符号(除了 . 和 ,这些应该在数字部分中找到)和字母的单独部分。 示例:
案例 1: C_TANTALB
Result:
Alpha[]: C, TANTALB
Beta[]:
Zeta[]: _
案例 2: BGA-100_T0.8
Result:
Alpha[]: BGA, T
Beta[]: 100, 0.8
Zeta[]: -, _
案例 3: C0201
Result:
Alpha[]: C
Beta[]: 0201
Zeta[]:
I've found this post 但它不是我的全部工作,因为它在示例 1 中失败,甚至没有返回 alpha 部分。而且它找不到标点符号。
如有任何帮助,将不胜感激。
【问题讨论】:
-
答案有
IsLetter和IsDigit.. 或许这些的简单组合会找到标点符号。 -
我会牢记这一点,但要遍历所有字符,这将是一项相当繁重的操作。这个函数经常被调用,我想知道它是否有可能以更有效的方式
-
这些字符串是否基于某种编码标准? “-”和“_”是唯一可能的“标点符号”吗?
-
测试字符串的所有字符的唯一方法是对其进行迭代。这些都是简单的操作,我不希望有任何性能问题。您可以尝试使用正则表达式。喜欢
([a-zA-Z]+)|(\d+)|([^a-zA-Z\d])。您甚至可以添加名称组 -
如果你有多个 - 或 _ 会发生什么?
标签: c#