c# - Python 长字符串由\n 分隔并拆分模拟长字符串 c#

标签 c# python string

在 python 中有一个选项可以做到这一点:

patterns = [s for s in"""
ATGCG
GCATG
CATGC
AGGCA
GGCAT
""".split() if s]

在 C# 中我有一个像这样的字符串:

ATGCG
GCATG
CATGC
AGGCA
GGCAT

如果我这样做

string patterns = "
    ATGCG
    GCATG
    CATGC
    AGGCA
    GGCAT";

那是不正确的

所以我想用

string patterns = "ATGCG\nGCATG\nCATGC\nAGGCA\nGGCAT";
            var elems = patterns.Split(new[] { "\n" }, StringSplitOptions.RemoveEmptyEntries);

但是我不想把 \n 放在每一行,有没有更好的方法来做到这一点? 也许从文件中读取那个字符串? C# 代码会是什么样子?

我在想

StringBuilder sb = new StringBuilder();
using (StreamReader sr = new StreamReader("TestFile.txt")) 
{
    String line;
    while ((line = sr.ReadLine()) != null) 
    {
        sb.AppendLine(line);
    }
}
string allines = sb.ToString();

这样对吗?

完整答案是:

using System;
using System.Collections.Generic;
using System.Text;
using System.Linq;
namespace ConsoleApplication3
{
    class Program
    {
        static void Main(string[] args)
        {
            string patterns = @"
 ATGCG
 GCATG
 CATGC
 AGGCA
 GGCAT    
";
            var elems = patterns.Split(new[] { "\r\n" }, StringSplitOptions.RemoveEmptyEntries);
            var results = elems.SelectMany((p1, i1) => elems.Where((p2, i2) => i1 != i2).Select(p2 => new { p1, p2 }))
                  .Where(x => x.p1.Substring(1) == x.p2.Substring(0, x.p2.Length - 1)).ToList();
            string result = "";
            foreach (var pair in results)
            {
                result += pair.p1 + " -> " + pair.p2 +"\n";
            }
            System.IO.File.WriteAllText("out.txt", result);



        }
    }
}

最佳答案

我不确定我是否完全理解你的意思,但如果你想在多行中定义一个变量,你可以使用 verbatim string literal 来定义字符串。 , 然后拆分 Environment.NewLine (\r\n)

string patterns = @"
ATGCG
GCATG
CATGC
AGGCA
GGCAT";

这里是你如何得到单独的行:

var elems = patterns.Split(new[] { Environment.NewLine }, StringSplitOptions.RemoveEmptyEntries);

关于c# - Python 长字符串由\n 分隔并拆分模拟长字符串 c#,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20463087/

相关文章:

python - 如何找到 ngram 在句子中的位置?

c# - 非托管 C++ 代码向托管代码发送字符串的错误

c# - 如何实现自动换行?

c# - SqlDataSource GridView 的总行数

python - 使用子进程导入 SQL 转储

python:比较两个字符串

c# - 在另一个 Controller 中将责任从短 URL 重定向到完整 URL

python - 我无法在 python (windows) 中创建文件

java - 使用 BufferedReader 读取数组?

java - 如何在字符串中搜索相同的模式,然后将它们放入Java中的数组中?