【问题标题】:What is the equivalent of this tokenizer code in C#?C# 中这个标记器代码的等价物是什么?
【发布时间】:2012-10-14 00:41:13
【问题描述】:

这是安卓的java代码。我正在尝试将其转换为 windows c#。我尝试使用 split 但我不知道如何转到下一个元素。

StringTokenizer st = new StringTokenizer(source, "><");
String marker = st.nextToken();

while(st.hasMoreTokens())
{   
nameLoop:
if(marker.equals("Name:"))
{
     while(st.hasMoreTokens())
     {  
          (marker.equals("strong"))
          {
               marker = st.nextToken();
               while(!(marker.equals("/strong")))
               {
                    Name = marker;
                    marker = st.nextToken();
               }
               break nameLoop;
           }

               marker = st.nextToken();
     }
 }
 else
     marker = st.nextToken();
 }

【问题讨论】:

    标签: c# windows-phone-7 stringtokenizer string-split


    【解决方案1】:

    您在 C# 中从 string.Split 获得一个数组,因此您只需使用 foreach 循环遍历元素

    string[] tokens = source.Split("><", StringSplitOptions.RemoveEmptyEntries);
    foreach (string marker in tokens) {
        if (marker == "strong") {
        }
    }
    

    或者,如果你想要一个索引,你可以使用 for 循环

    string[] tokens = source.Split("><", StringSplitOptions.RemoveEmptyEntries);
    for (int i = 0; i < tokens.Length; ++i) {
        string marker = tokens[i];
        if (marker == "strong") {
        }
    }
    

    【讨论】:

    • string marker : tokens 的构造是什么?我以前没有见过这种用法。谢谢。
    • 这不是 C# 构造,而是 Java 中没有索引的 for 循环。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2021-06-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多