C# 中是否有像 Java 中那样的 splitByCharacterType 方法?

2023-12-10

Java中有一个方法按字符类型分割例如,需要一个字符串0015j8*(,并将其分成"0015","j","8","*","("。 c#中有这样的内置函数吗?如果不是,我将如何构建一个函数来执行此操作?


public static IEnumerable<string> SplitByCharacterType(string input)
{
    if (String.IsNullOrEmpty(input))
        throw new ArgumentNullException(nameof(input));

    StringBuilder segment = new StringBuilder();
    segment.Append(input[0]);
    var current = Char.GetUnicodeCategory(input[0]);

    for (int i = 1; i < input.Length; i++)
    {
        var next = Char.GetUnicodeCategory(input[i]);
        if (next == current)
        {
            segment.Append(input[i]);
        }
        else
        {
            yield return segment.ToString();
            segment.Clear();
            segment.Append(input[i]);
            current = next;
        }
    }
    yield return segment.ToString();
}

用法如下:

string[] split = SplitByCharacterType("0015j8*(").ToArray();

结果是"0015","j","8","*","("

我建议您将其作为扩展方法来实现。

本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

C# 中是否有像 Java 中那样的 splitByCharacterType 方法? 的相关文章

  • 使用 gcc 在 Linux 上运行线程构建块 (Intel TBB)

    我正在尝试为线程构建块构建一些测试 不幸的是 我无法配置 tbb 库 链接器找不到库 tbb 我尝试在 bin 目录中运行脚本 但这没有帮助 我什至尝试将库文件移动到 usr local lib 但这又失败了 任何的意见都将会有帮助 确定您
  • std::vector 与 std::stack

    有什么区别std vector and std stack 显然 向量可以删除集合中的项目 尽管比列表慢得多 而堆栈被构建为仅后进先出的集合 然而 堆栈对于最终物品操作是否更快 它是链表还是动态重新分配的数组 我找不到关于堆栈的太多信息 但
  • 如何在 C# 中打开 Internet Explorer 属性窗口

    我正在开发一个 Windows 应用程序 我必须向用户提供一种通过打开 IE 设置窗口来更改代理设置的方法 Google Chrome 使用相同的方法 当您尝试更改 Chrome 中的代理设置时 它将打开 Internet Explorer
  • 如何从本机 C(++) DLL 调用 .NET (C#) 代码?

    我有一个 C app exe 和一个 C my dll my dll NET 项目链接到本机 C DLL mynat dll 外部 C DLL 接口 并且从 C 调用 C DLL 可以正常工作 通过使用 DllImport mynat dl
  • 从经典 ASP 调用 .Net C# DLL 方法

    我正在开发一个经典的 asp 项目 该项目需要将字符串发送到 DLL DLL 会将其序列化并发送到 Zebra 热敏打印机 我已经构建了我的 DLL 并使用它注册了regasm其次是 代码库这使得 IIS 能够识别它 虽然我可以设置我的对象
  • -webkit-box-shadow 与 QtWebKit 模糊?

    当时有什么方法可以实现 webkit box shadow 的工作模糊吗 看完这篇评论错误报告 https bugs webkit org show bug cgi id 23291 我认识到这仍然是一个问题 尽管错误报告被标记为RESOL
  • 如何连接重叠的圆圈?

    我想在视觉上连接两个重叠的圆圈 以便 becomes 我已经有部分圆的方法 但现在我需要知道每个圆的重叠角度有多大 但我不知道该怎么做 有人有主意吗 Phi ArcTan Sqrt 4 R 2 d 2 d HTH Edit 对于两个不同的半
  • C++ 多行字符串原始文字[重复]

    这个问题在这里已经有答案了 我们可以像这样定义一个多行字符串 const char text1 part 1 part 2 part 3 part 4 const char text2 part 1 part 2 part 3 part 4
  • 需要帮助优化算法 - 两百万以下所有素数的总和

    我正在尝试做一个欧拉计划 http projecteuler net问题 我正在寻找 2 000 000 以下所有素数的总和 这就是我所拥有的 int main int argc char argv unsigned long int su
  • 在 Unity 中实现 Fur with Shells 技术

    我正在尝试在 Unity 中实现皮毛贝壳技术 http developer download nvidia com SDK 10 5 direct3d Source Fur doc FurShellsAndFins pdf Fins 技术被
  • 两个静态变量同名(两个不同的文件),并在任何其他文件中 extern 其中一个

    在一个文件中将变量声明为 static 并在另一个文件中进行 extern 声明 我认为这会在链接时出现错误 因为 extern 变量不会在任何对象中看到 因为在其他文件中声明的变量带有限定符 static 但不知何故 链接器 瑞萨 没有显
  • 如何定义一个可结构化绑定的对象的概念?

    我想定义一个concept可以检测类型是否T can be 结构化绑定 or not template
  • x:将 ViewModel 方法绑定到 DataTemplate 内的事件

    我基本上问同样的问题这个人 https stackoverflow com questions 10752448 binding to viewmodels property from a template 但在较新的背景下x Bind V
  • C# xml序列化必填字段

    我需要将一些字段标记为需要写入 XML 文件 但没有成功 我有一个包含约 30 个属性的配置类 这就是为什么我不能像这样封装所有属性 public string SomeProp get return someProp set if som
  • C# 动态/expando 对象的深度/嵌套/递归合并

    我需要在 C 中 合并 2 个动态对象 我在 stackexchange 上找到的所有内容仅涵盖非递归合并 但我正在寻找能够进行递归或深度合并的东西 非常类似于jQuery 的 extend obj1 obj2 http api jquer
  • 复制目录下所有文件

    如何将一个目录中的所有内容复制到另一个目录而不循环遍历每个文件 你不能 两者都不Directory http msdn microsoft com en us library system io directory aspx nor Dir
  • C++ 继承的内存布局

    如果我有两个类 一个类继承另一个类 并且子类仅包含函数 那么这两个类的内存布局是否相同 e g class Base int a b c class Derived public Base only functions 我读过编译器无法对数
  • 为什么 std::uint32_t 与 uint32_t 不同?

    我对 C 有点陌生 我有一个编码作业 很多文件已经完成 但我注意到 VS2012 似乎有以下语句的问题 typedef std uint32 t identifier 不过 似乎将其更改为 typedef uint32 t identifi
  • DotNetZip:如何提取文件,但忽略zip文件中的路径?

    尝试将文件提取到给定文件夹 忽略 zip 文件中的路径 但似乎没有办法 考虑到其中实现的所有其他好东西 这似乎是一个相当基本的要求 我缺少什么 代码是 using Ionic Zip ZipFile zf Ionic Zip ZipFile
  • 指针和内存范围

    我已经用 C 语言编程有一段时间了 但对 C 语言还是很陌生 有时我对 C 处理内存的方式感到困惑 考虑以下有效的 C 代码片段 const char string void where is this pointer variable l

随机推荐

  • 如何制作 YouTube 无 Chrome 播放器?

    这听起来可能很愚蠢 但我在网上查了一段时间 但找不到如何使 YouTube 播放器成为无 Chrome 浏览器 我正在制作一个网络应用程序 并且正在使用 YouTube JavaScript API 无论我在网上查找有关如何实际使播放器成为
  • 序列化字典时保留大小写

    我有一个 Web Api 项目 配置如下 config Formatters JsonFormatter SerializerSettings ContractResolver new CamelCasePropertyNamesContr
  • MDbg - 调试器的协议与被调试者不兼容

    我正在使用 MDbg 检索进程的应用程序域中列出的所有程序集的列表 每当我尝试将进程附加到 MDbgEngine 时 我都会收到以下异常消息 调试器的协议与被调试者不兼容 HRESULT 异常 0x8013134B 我是否遗漏了某些内容或错
  • 如何将 pdf 文件转换为 CSV 文件?

    我想将 PDF 文件转换为 CSV 文件 我为此使用 iText 库 该程序运行良好 但输出不是所需的格式 所有数据都位于 csv 文件的第一行 输出应该与 pdf 文件完全相同 意味着带有换行符 请帮忙 提前致谢 Document doc
  • 通过图形 API 获取所有用户及其上次登录信息

    我正在尝试导出所有用户数据 包括上次登录日期 我正在关注这篇文章 https morgantechspace com 2021 09 find last login date for all azure ad users using pow
  • 将派生类型与过程从模块放置到子模块

    我需要一些有关使用子模块的帮助 我的目的是使用一个子模块来表示来自父模块的特定派生类型 并且我想将派生类型的整个声明放入子模块中 例如 这是我想要转换的示例代码 MODULE PARENT MODULE IMPLICIT NONE TYPE
  • 如何知道给定的DLL是否被给定的进程加载? [复制]

    这个问题在这里已经有答案了 可能的重复 如何以编程方式获取 DLL 依赖项 在 Windows 上 在 C 程序中 我想知道给定的 DLL 我知道路径 是否由给定的外部进程 我知道 exe 的路径 使用 win32 函数加载 必须能够列出进
  • ObjectContext.GetObjectType(e.GetType()) 不返回 POCO 实体的实体类型

    The ObjectContext GetObjectType 方法应该返回 与指定类型的代理对象关联的 POCO 实体的实体类型 那么为什么在我的代码中它只返回代理呢 我正在使用实体框架 6 候选版本 Soft delete var e
  • 如何使在网络 A 框架中动态生成的实体可点击?

    我正在使用网络 A 框架在加载页面时生成一个新实体 我想在这些实体上添加一些功能 例如悬停 单击等 我尝试使其可单击 但没有成功 function rigClick console log Entity Clicked
  • 访问 PHP 函数中的全局变量

    根据大多数编程语言的作用域规则 我可以访问在函数内部定义的变量 但为什么这段代码不起作用 输出是 为了解决所提出的问题 它不起作用 因为您需要声明将在函数本身中访问哪些全局变量 data My data function menugen g
  • Python 中的 Selenium 单元测试——我的日志文件在哪里?

    因此 我将一些单元测试从 Selenium IDE 导出到 Python 现在我正在尝试调试一些东西 我注意到 Selenium 使用logging模块 有一个特定的行selenium webdriver remote remote con
  • Firefox 中的隐藏滚动条(允许滚动但没有滚动条)

    我想创建一个能够滚动但不显示滚动条的 div 我已经找到了 Webkit 的解决方案 如下 但是如何在其他浏览器中完成此操作 我宁愿避免使用 JavaScript 插件 希望找到 CSS 或供应商特定的解决方案 网络套件解决方案 photo
  • fseeko,fseeko64; ftello、ftello64 Visual C 等效项

    有人可以帮助我告诉我 fseeko 的 Visual C 等价物是什么吗 fseeko64 ftello ftello64 谢谢 没有返回 使用 off t 的函数 如果您需要 64 位位置 可以使用 fseeki64 ftelli64
  • 在Java中解析“2010年1月10日”格式的日期? (使用序数指标,st|nd|rd|th)

    我需要用Java解析 2010年1月10日 格式的日期 我怎样才能做到这一点 如何处理序数指标 the st nd rd or th跟踪天数 这有效 String s January 10th 2010 DateFormat dateFor
  • 查找对象的所有属性和子属性

    有时我想知道一个对象是否具有我正在寻找的属性 但有时一个对象有很多属性 可能需要一些时间才能找到它并进行调试 如果我可以编写一个函数来查找字符串中的所有属性及其值 那么我可以将该字符串粘贴到记事本中 并使用记事本具有的查找功能查找我正在查找
  • 如何解压Google AppEngine批量下载器编写的sqlite3数据库

    我需要下载应用程序数据存储区中相当大 多 GB 实体的所有实例 我有足够的磁盘空间来存储实体的数据 但不足以存储批量下载程序作为 SQLite 数据库检索的原始数据and下载程序在应用我的bulkloader yaml 文件中指定的转换后写
  • android_build.sh 在构建 ffmpeg 库时出错

    我正在尝试构建 ffmpeg 库 下面给出了我的 android build sh bin bash NDK C Users Benzatine Downloads android ndk r10e SYSROOT NDK platform
  • KDB:在两个列表中应用二元函数

    考虑一个函数F x y 生成一个表 我还有两个清单 xList x1 x2 x3 and yList y1 y2 y3 进行简单逗号连接的最佳方法是什么F x1 y1 F x1 y2 F x1 y3 F x2 y1 从而产生一张大桌子 您已
  • 错误“函数参数太少”

    我在以下代码片段中遇到错误 Too few arguments to function showtbl GetTabellen ns 0 passed in abcde folder php php on line 153 and exac
  • C# 中是否有像 Java 中那样的 splitByCharacterType 方法?

    Java中有一个方法按字符类型分割例如 需要一个字符串0015j8 并将其分成 0015 j 8 c 中有这样的内置函数吗 如果不是 我将如何构建一个函数来执行此操作 public static IEnumerable