2010-07-02 56 views
0

我被困在一个看似简单的问题。我想读一个有点像c#代码写的文本层次结构,例如;文字层次阅读C#

Common 
{ 
    MyClass1 
    { 
    Method1 
    { 
     "Helloworld"; 
     "GoodBye";  
    } 
    Method2 
    { 
     "SayGoodMorning"; 
    } 
    } 
    MyClass2 
    { 
    Method3 
    { 
     "M3"; 
    } 
    } 
} 

考虑共同它可以有许多类命名空间,类可以有许多方法连的方法可以有另一种方法(只是n个电平的概念)。我希望的结果是这样的:

常见MyClass1的方法1的HelloWorld
常见MyClass1的方法一再见
常见MyClass1的方法2 SayGoodMorning
常见MyClass2方法3 M3

这可以是正的水平,任何帮助或将指引不胜感激

回答

1

使用Stack对象来跟踪当前名称空间。每次看到“{”将前一行推入堆栈时。每次看到“}”弹出堆栈。如果该行以“;”结尾然后使用堆栈中的当前值构建命名空间,然后将当前行添加为方法名称。