微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

拆分已经拆分的字符串

如何解决拆分已经拆分的字符串

我有一个格式为“xx,xx,xx|xx,xx”的字符串 我想得到每个 xx 部分,所以我从 string.split('|'); 开始 因为零件的数量不是固定数字,所以我想用 foreach 来做。 但是 foreach 中的 Split(',') 不起作用,[iIget this error][1]

string[] lang = RechnungenString.Split('|');

foreach (string item in lang)
{
    string parts = item.Split(',');
}

我怎样才能做我想做的事? 谢谢! [1]:https://i.stack.imgur.com/EtXoH.png

解决方法

对您的问题的简单回答是,由于 Split 返回一个字符串数组 string[],正如您在代码示例的第一行中所做的那样,您的 parts 变量也必须是string[] 类型以避免该错误:

string[] lang = RechnungenString.Split('|');

foreach (string item in lang)
{
    string[] parts = item.Split(',');
    // process each triplet here
}

由于您的第一条语句是“我想获取每个 xx 部分”,如果这句话意味着您只想将所有 xx 部分收集到一个字符串数组中,那么您可以大大简化您的代码。 Split 方法有一个重载,允许您指定多个分隔符,因此您的整个代码示例可能只是:

string[] lang = RechnungenString.Split('|',',');

现在 lang 将包含示例字符串中的所有 9 个 xx 元素。

,
late Timer backgroundFunction; // the Timer which will keep running until some cond is meet.

bool shouldStop = false;   // Add some variable to know,when to stop

@override
  void initState() {
    
     backgroundFunction = Timer.periodic(const Duration(seconds: 1),(timer) {
        shouldStopTImer(); // This will check whether to stop or go on. Every 1 sec 
    });
  }

void shouldStopTImer(){
   if(shouldStop){
     backgroundFunction.cancel();
    }
}


Some logic .......

shoudlStop = true; //When you want to stop. Make it true


替代解决方案:

string[] lang = RechnungenString.Split('|');

foreach (string item in lang)
{
    string[] parts = item.Split(',');
    foreach (string item2 in parts)
    {
        // do something with item2
    }
}

这需要: foreach (string item in Regex.Split(RechnungenString,"[|]|,")) { Console.WriteLine(item); }

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 dio@foxmail.com 举报,一经查实,本站将立刻删除。