获取前导空白

2024-01-02

我刚刚写了这个方法,我想知道框架中是否已经存在类似的东西?这似乎只是这些方法之一......

如果没有,有更好的方法吗?

/// <summary>
/// Return the whitespace at the start of a line.
/// </summary>
/// <param name="trimToLowerTab">Round the number of spaces down to the nearest multiple of 4.</param>
public string GetLeadingWhitespace(string line, bool trimToLowerTab = true)
{
    int whitespace = 0;
    foreach (char ch in line)
    {
        if (ch != ' ') break;
        ++whitespace;
    }

    if (trimToLowerTab)
        whitespace -= whitespace % 4;

    return "".PadLeft(whitespace);
}

Thanks

Edit:阅读一些评论后,很明显我还需要处理选项卡。

我无法给出一个很好的例子,因为该网站将空格减少到只有一个,但我会尝试:

假设输入是一个包含 5 个空格的字符串,该方法将返回一个包含 4 个空格的字符串。如果输入少于4个空格,则返回""。 这可能有帮助:

input spaces | output spaces
0 | 0
1 | 0
2 | 0
3 | 0
4 | 4
5 | 4
6 | 4
7 | 4
8 | 8
9 | 8
...

我没有运行任何性能测试,但这代码较少。

...

whitespace = line.Length - line.TrimStart(' ').Length;

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

获取前导空白 的相关文章

随机推荐

  • 在编写 Spring Resource Bundle 时是否有单一规则来处理单引号?

    春天的ResourceBundleMessageSource uses MessageFormat用于替换占位符 0 内部消息 MessageFormat要求单引号 使用两个单引号 see 消息格式 Javadoc http docs or
  • 从文本块中删除停用词

    我正在处理一个文本块 步骤之一是删除停用词 Textblob 是不可变的 因此我将其转换为列表来完成这项工作 blob tb tekst lista word for word in blob words if word not in st
  • 可以同时延长2个课程吗?

    我有这些课程 public class myClassPage System Web UI Page public myClassPage public class myClassControl System Web UI UserCont
  • 碰撞检测和碰撞响应

    我一直在尝试使用 androids Opengl 来表示一些移动 旋转的对象 现在我想让他们碰撞并做出现实的反应 通过研究这个问题 我可以找到许多资源 这些资源建议我如何确定两个 3D 形状是否在当前帧中发生碰撞 或者它们是否会在下一帧中发
  • 有效合并大镶木地板文件

    我正在使用 parquet tools 来合并 parquet 文件 但 parquet tools 似乎需要与合并文件一样大的内存 我们是否有其他方法或 parquet tools 中的可配置选项来更有效地使用内存 因为我在 hadoop
  • 如何在android中的textview中缩进文本?

    我试图通过制作单独的段落来使文本更容易阅读 我尝试在字符串资源中的文本之前添加空格 但它不起作用 我想知道是否可以向文本视图或字符串资源本身添加属性 谢谢罗布 您可以使用 t 表示制表符 n 表示换行符 它肯定有效 并将此属性写入 xml
  • 无法使用 var 和 foreach 将 void 分配给隐式类型局部变量

    我正在尝试列出表单中的所有按钮名称以使用代码列出 var v new List
  • 如何阅读 FSM 图

    我如何获取该图并将其转换为可用的程序 我不太确定如何阅读该图 引导我完成它 也许会展示一个代码示例以及它与图表的关系 里面有文字的圆圈是州 文本描述了状态是什么 虚线箭头指向起始状态 传出箭头确定此状态可以更改的位置 箭头旁边是被线分为上半
  • Lua中如何快速初始化关联表?

    在Lua中 您可以通过以下方式创建表 local t 1 2 3 4 5 但是 我想创建一个关联表 我必须按以下方式进行 local t t foo 1 t bar 2 下面给出了一个错误 local t foo 1 bar 2 有没有办法
  • 在 QML 中解析 JSON [重复]

    这个问题在这里已经有答案了 相关的 Qt 文档应该是this http doc qt io qt 5 json html 但它没有提到 QML 然而 在网上的许多地方 我发现了类似功能的用法JSON parse在 QML JS 中 有这样的
  • 如何将 MediatR 与我的业务层解耦

    早上好 我在项目中使用域事件 我发现实现它的最简单方法是使用 MediatR 但我不希望我的项目直接依赖它 我想应用依赖倒置来隐藏库 由于 INotification 接口 当前代码依赖于 Mediator public class Ema
  • 片段已在 viewpager 中添加了 IllegalStateException

    我正在使用 viewpager 来显示图片 我基本上只需要三个片段 上一个要预览的图像 当前显示的图像和下一个要预览的图像 我想只显示上一张和下一张图像的预览 当用户实际滑动到它时 它将更改为完整图像 所以我想只使用 3 个片段来实现这一点
  • Ellipsoid R 函数 - 查找一个点是否适合 - R 脚本

    我有一个 3D 椭球函数 ellipsoid lt function center c 0 0 0 radius 1 shape diag 3 segments 51 angles lt 0 segments 2 pi segments e
  • 如何从返回根参数和数组的 JSON API 调用创建 Backbone Collection

    Backbone js 菜鸟在这里 我想从我的应用程序外部的 JSON API 创建一个集合 具体来说 api来自堆栈溢出 http api stackoverflow com 1 1 我知道我应该从这样的集合中设置 url 参数 App
  • 错误:连接超时:连接。如果您使用 HTTP 代理,请在 IDE 或 Gradle 中配置代理设置

    我厌倦了这个错误 我不知道如何解决这个错误 它没有设置为自动配置模式 我正在尝试自动配置它 但它需要自动配置 URL 我不知道该 URL 它给我们导入的所有项目带来了同样的错误 请帮助这个错误 我已经尝试了很多天了 如果您不使用任何代理 那
  • CDN如何访问数据库?

    具体来说 我将使用的数据库是 mongodb 有问题的文件是图像 我的问题是 如果您将图片存储在数据库中而不是常规的静态文件结构中 这是如何工作的 我想您可以将 CDN 文件的链接与图片一起存储在数据库中 所以 image cdnurl f
  • 如何动态更改 R 中现有函数的一行

    我偶尔会遇到带有限制性参数的函数 这些社区贡献的函数绝对很棒 否则我希望能够定义一个新函数 动态地改变困扰我的行为 而不必将整个函数重写到脚本文件中 我知道如何在 R 中可视化函数 只需键入函数名称即可 但是如何用修改后的定义保存 修改和定
  • Android神秘的空指针异常

    自从我上传我的应用程序以来 我收到了许多 java lang NullPointerException 崩溃报告 我正在努力理解这个问题 因为它不会在我亲自测试过的模拟器或物理设备上崩溃 以下是其中一份报告的示例 java lang Ill
  • 在Boost几何C++库中我添加的点的顺序重要吗?

    我是 boost 的新手 甚至是 boost geometry 的新手 所以我的问题是 boost geometry 向多边形添加点的顺序重要吗 例如 这一样吗 create a polygon polygon p p outer push
  • 获取前导空白

    我刚刚写了这个方法 我想知道框架中是否已经存在类似的东西 这似乎只是这些方法之一 如果没有 有更好的方法吗