如何在里面引用带引号的字符串?

时间:2012-05-24 02:09:19

标签: c#

我在功能的顶部有这个:

string n = "";
string test = "T256=" + n;

但是测试只是“T256 =”

如果在字符串中我正在做n =“\”“;

然后测试是“T256 = \”但是\表示引用?

如果我有以下内容,我怎么能拿出一个空字符串:

T256 =“你好”所以我只能取出你好,但如果我有T256 =“”是什么意思?因为我的程序跳过一个空字符串“”

但我需要使用它。

例如在我的文件中,它是这样的:

T256="hello"

T256=""

T256=""

T256="hi"

那么我如何记住两个T256 =“”?如果我不会将下一个单词放在第一个空的T256 =“”中,它将会像:

T256="hello"

T256="hi"

它不是应该的样子。它应采用这种格式,这是一种很好的格式:

T256="hello"

T256=""

T256=""

T256=hello"

所以这是我的代码,即我取出文本,但由于某种原因,它会取出两个标签之间没有文字的地方。

string startTag =“T256 = \”“; string endTag =“\”“;

如果这两个标签之间有文字,则会将其取出,但如果此标签之间没有文字,则会跳转到标签之间带有文字的下一行。

我需要使用T256 =“”的任何一行,即使它在“”

之间是空的

所以在文本文件中我会看到一个空格或“”例如文本文件应该是:

Hello

""

Hi

""

""

Hello

或者如果没有“”那么空的空间,当我放回文本时,它也应该放回空格或空字符串。

这是我取出文字的代码:

private void parseText(string originalFile, BackgroundWorker worker)
        {
            FormText("Parsing Text");
            int lineNumber = 0;
            string startTag = "T256=\"";
            string endTag = "\"";
            int index = 0;
            int startTagWidth = startTag.Length;
            int endTagWidth = endTag.Length;
            int fileLength = originalFile.Length;
            w = new StreamWriter(@"d:\testingdeponias.txt");
            while (true)
            {
                if (index > originalFile.LastIndexOf(startTag))
                {
                    break;
                }
                int startTagIndex = originalFile.IndexOf(startTag, index);
                int stringIndex = startTagIndex + startTagWidth;
                index = stringIndex;

                int endTagIndex = originalFile.IndexOf(endTag, index);
                int stringLength = endTagIndex - stringIndex;
                if (stringLength == 0)
                {
                }
                else
                {
                    //worker.ReportProgress(20);
                    string test = originalFile.Substring(stringIndex, stringLength);
                    if (test == "")
                    {
                        MessageBox.Show(test);
                    }

但测试永远不会“”我在那里使用断点,它永远不会到达MessageBox

2 个答案:

答案 0 :(得分:2)

"\""表示\"

在.NET [C#]中,我们不能简单地编写",因为这个特殊的Char在语言中有一些特殊的功能。

所以我们必须编写Char "的转义序列。

转义序列以\开头,后跟实际的Char。

例如: \的转义序列为\\

因此,在您的情况下,"将被写为\"并对其进行字符串化,\"变为"\""

代码:

string n = "\"\"";
string test = "T256=" + n; // same as string test = "T256=\"\""

Read More About Escape Sequence

答案 1 :(得分:1)

非常简单。

只需测试

  • 字符串化引号:“ - > with escape characters \” - > stringify“\”“
  • 字符串化两个引号:“” - >使用转义字符\“\” - > stringify“\”\“”

string needle =“256TT = \”\“”;

等于256TT =“”

每当程序找到它时,只需打印出你的消息框或你想做的任何事情:在文本文件中放置一个空格或者放置两个引号,如下所示\“\”

那就是那个。