2014-03-13 108 views
-3

我是C#的新手。扫描字符串数组

如何获取用户输入并将每个字母作为单独的实体保存在数组中。

我想扫描整个数组,找到一个特定的字符序列作为起点。

namespace ConsoleApplication1 
{ 
    class Program 
    { 
     static void Main(string[] args) 
     { 
      Console.WriteLine("Please enter Nitrogenous base sequence"); 
      string[] sequence = new string[]{Console.ReadLine()}; 

      foreach(string a in sequence) 
      { 
       if(a=="TATAAT") 
       { 
        Console.WriteLine("YAAY"); 
       } 

       else 
       { 
        Console.WriteLine("NO"); 
+0

我想你可能想改为使用Console.ReadKey。 – Casey

回答

3

你可以将string想象为一个荣耀的字符数组。

var pattern = "TATAAT"; 
var input = Console.ReadLine(); 

var patternIndex = input.IndexOf(pattern); 

if(patternIndex >= 0) { 
    var answer = input.Substring(patternIndex + pattern.Length, 4); 
    Console.WriteLine("YAAY: " + answer); 

} else { 
    Console.WriteLine("NO"); 

} 
+0

需要将“TATAAT”后面的下四个字符保存为单独的实体。我是否需要将我的原始输入字符串作为字符串数组,然后使用索引? – Ashwin

+0

@Ashwin我编辑了我的答案 –

+0

非常感谢,你在哪里找到所有这些子方法? – Ashwin

0

可以使用LINQ做到这一点,这将让来自用户的输入,然后每个字符保存为string到一个数组:

string[] sequence = Console.ReadLine().Select(x => x.ToString()).ToArray(); 

如果你不想包含空格:

string[] sequence = Console.ReadLine().Where(x => !char.IsWhiteSpace(x)) 
        .Select(x => x.ToString()) 
        .ToArray(); 
+0

很明显,op是一个初学者 - 用lambda表达他,并且LINQ需要更多解释... – joe

+0

仍然觉得很难扫描。需要键入随机组合的字母,然后在找到TATAAT时停止。 – Ashwin