字符串生成器与列表

2023-12-05

我正在读取包含数百万行的多个文件,并且正在创建具有特定问题的所有行号的列表。例如,如果特定字段留空或包含无效值。

所以我的问题是,跟踪可能超过一百万行的数字列表的最有效的日期类型是什么。使用字符串生成器、列表或其他东西会更有效吗?

我的最终目标是输出一条消息,例如“1-32、40、45、47、49-51 等的特定字段为空白。因此,在字符串生成器的情况下,我会检查以前的值,如果它仅多 1 个,我会将其从 1 更改为 1-2,如果多于 1,则用逗号分隔。使用列表,我只需将每个数字添加到列表中,然后在文件包含后合并已完全阅读。但是在这种情况下,我可以有多个包含数百万个数字的列表。

这是我使用字符串生成器组合数字列表的当前代码:

string currentLine = sbCurrentLineNumbers.ToString();
string currentLineSub;

StringBuilder subCurrentLine = new StringBuilder();
StringBuilder subCurrentLineSub = new StringBuilder();

int indexLastSpace = currentLine.LastIndexOf(' ');
int indexLastDash = currentLine.LastIndexOf('-');

int currentStringInt = 0;

if (sbCurrentLineNumbers.Length == 0)
{
    sbCurrentLineNumbers.Append(lineCount);
}
else if (indexLastSpace == -1 && indexLastDash == -1)
{
    currentStringInt = Convert.ToInt32(currentLine);

    if (currentStringInt == lineCount - 1)
        sbCurrentLineNumbers.Append("-" + lineCount);
    else
    {
        sbCurrentLineNumbers.Append(", " + lineCount);
        commaCounter++;
    }
}
else if (indexLastSpace > indexLastDash)
{
    currentLineSub = currentLine.Substring(indexLastSpace);
    currentStringInt = Convert.ToInt32(currentLineSub);

    if (currentStringInt == lineCount - 1)
        sbCurrentLineNumbers.Append("-" + lineCount);
    else
    {
        sbCurrentLineNumbers.Append(", " + lineCount);
        commaCounter++;
    }
}
else if (indexLastSpace < indexLastDash)
{
    currentLineSub = currentLine.Substring(indexLastDash + 1);
    currentStringInt = Convert.ToInt32(currentLineSub);

    string charOld = currentLineSub;
    string charNew = lineCount.ToString();

    if (currentStringInt == lineCount - 1)
        sbCurrentLineNumbers.Replace(charOld, charNew);
    else
    {
        sbCurrentLineNumbers.Append(", " + lineCount);
        commaCounter++;
    }
}   

我的最终目标是输出类似“1-32、40、45、47、49-51 上的特定字段为空白”的消息

如果这是最终目标,那么通过中间代表(例如List<int>- 只需选择一个StringBuilder。这样您就可以节省内存和 CPU。

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

字符串生成器与列表 的相关文章

随机推荐

  • 关于问号“惰性”模式的正则表达式

    我明白了 这里mark的意思是 懒惰 我的问题本质上是 0 9 2 vs 0 9 2 它们相同吗 如果是这样 我们为什么要写前一个表达式 惰性模式不是更昂贵的性能吗 如果不是 你能分辨出区别吗 什么是 懒惰 不情愿 匹配 与正则表达式匹配时
  • 回收站视图中的项目重叠

    当用户滚动时 我的回收器视图中的项目会重叠 注意底部重叠的文本 这是生成此视图的代码 ArrayList
  • 缓冲区之间的 Emacs 选项卡

    有没有一种方法可以在缓冲区之间切换而无需通过 buffer list 或者写入我想要切换到的缓冲区的名称 更具体地说 我想知道 emacs 是否可以在缓冲区之间进行制表 就像它在 notepad 中的工作方式一样 Emacs 22 1 及更
  • 使用“auto”的声明是否与使用具体类型说明符的 extern 声明匹配?

    考虑以下程序 extern int x auto x 42 int main Clang 3 5 接受它 现场演示 GCC 4 9 和 VS2013 没有 前者的现场演示 谁是对的 C 标准中规定的正确行为在哪里 令人惊讶的是 标准中对此的
  • 复杂的 Mongoose 过滤查询

    我正在构建一个允许用户使用侧边栏过滤结果的网站 他们选择的标准越多 搜索结果就应该越具体 见附图 用户可以选择与他们要查找的内容相匹配的过滤器 复选框 我为此使用 MongoDB 我的架构如下 brandName type String r
  • Raspberry pi 4 用 java 控制 GPIO

    我想用java控制我的树莓派4上的16 2液晶显示屏 问题是Pi4J 用java修改gpios的解决方案没有更新到pi4 还有其他解决方案吗 当我启动程序时出现此错误 pi raspberrypi desktop gpio sudo sta
  • 如何在 Yii 中为单个日期属性设置多个字段(D/M/Y)?

    我想将用户出生日期存入我的数据库 表中有一个字段称为dob 当我创建模型和 CRUD 时 它生成了文本字段dob一如既往 但我想创建三个输入 多年 几个月来 和日期 所以我的问题是如何在模型的表单中添加额外的输入 我正在考虑向模型类添加新属
  • iPhone可以与JMS通信吗?

    只是想知道是否有人知道如何在 iPhone 和 iPhone 之间发送 接收 XML 消息Java消息服务 Regards 有几种方法可以实现这一点 要么通过 MQ 附带的 HTTP 桥 我自己已经这样做了 要么使用新的 MQTT 支持 您
  • MKMapView持续监控航向

    我在位于我的顶部的图层中渲染一些内容MKMapView 除了旋转之外 整个事情都运转良好 当用户旋转地图时 我需要能够旋转我在自己的图层中渲染的内容 我发现的标准答案是使用 NSLog heading f self mapView came
  • mozilla 和 safari 的仪表栏样式

    I am using the following css on my meter bars but somehow the styling does not work on safari see below screenshots I am
  • 如何停止 while 循环

    这个 while 循环永远不会结束 例如 当我输入错误的密码时 它会一遍又一遍地进入 密码错误 部分 Logo inFile open UsernamePassword txt if inFile cout lt lt Unable to
  • 在http标头中设置身份验证令牌

    我一直在关注关于如何设置身份验证令牌的railscasthttp railscasts com episodes 352 securing an api view asciicast 我已经很好地设置了我的应用程序 它使用authentic
  • 获取字符串的每个组合

    我有一个组合学作业 涉及从特定的字符串组合中获取长度小于或等于 6 的每个单词 在本例中 它是 S a ab ba 教授刚刚开始列出它们 但我认为用程序来解决会更容易 唯一的问题是我无法得到一个好的算法来实际计算每个可能的选项 如果有人可以
  • Onchange 事件运行不佳

    我创建了以下 html 页面
  • 必须使用 fibo_ 实例作为第一个参数调用未绑定方法 f() (改为使用 classobj 实例)

    在 Python 中 我尝试在类中运行一个方法 但出现错误 Traceback most recent call last File C Users domenico Desktop py main py line 8 in
  • 将 sqlite3 db 关联到 iPhone 应用程序

    我正在尝试将 SQLite3 数据库文件与我们的应用程序关联起来 以便可以轻松地从电子邮件打开备份的数据库 然而 以下内容似乎不起作用 因为 邮件 仍然无法识别该文件 在 iPad 和 iPhone 4 上
  • Springfox swagger - 没有 Spring Boot jersey 和 gradle 的 api 文档

    我有一个带有 jersey 和 gradle 的 spring boot 应用程序 我正在尝试使用 springfox 自动生成 API 文档 我已按照此处的步骤操作 http springfox github io springfox d
  • 你能用 pty 做什么?

    阅读了各种资源 包括http www linusakesson net programming tty 我对伪终端的结构和使用仍然很困惑和好奇 在 Linux 终端 bash 不是 tty 中 我们有三个流 stdin stdout std
  • C++ 中初始化变量的 = 和 {} 语法之间的差异

    我读过相当多的 C 代码 并且遇到过两种初始化变量的方法 方法一 int score 0 方法二 int score 我知道int score 会将分数初始化为 0 因此int score 0 这两者有什么区别 我读过了初始化 括号与等号但
  • 字符串生成器与列表

    我正在读取包含数百万行的多个文件 并且正在创建具有特定问题的所有行号的列表 例如 如果特定字段留空或包含无效值 所以我的问题是 跟踪可能超过一百万行的数字列表的最有效的日期类型是什么 使用字符串生成器 列表或其他东西会更有效吗 我的最终目标