是\ t只考虑1个字符?

时间:2014-05-22 18:43:09

标签: c#

我试图用do while和substring做一些基本的逻辑,如下面的

bool foundFirstTaskname = false;
int startCounter = 0;
do
{
    var checkEveryTwo = name.Substring(startCounter, 1);
    if (checkEveryTwo == "\t")
        startCounter += 1;        
    else
        foundFirstTaskname = true;

} while (!foundFirstTaskname);

当用户执行粘贴操作时,我会运行这样的一些代码,因此我抓住剪贴板的内容并将其设置为' name'。现在,对于这个应用程序,我正在检查" \ t"因为他们可以从excel中粘贴东西。

可以说,我们这个例子的粘贴输入是 - \ t \ t \ t \ t \ tTest1。 (这可以通过向单元格e1添加内容并复制a-e1并将其粘贴到此应用程序中来实现。)

现在,我只是在寻找没有\ t的第一个实例,并且它击中了bool标志。

现在我的实际问题是,当我运行这个应用程序并查看我的checkEveryTwo变量时,如果它实际上是字符串\ t,它会在var变量中显示,这很好。

所以现在我的变量显示了\ t,\ t,\ t,\ t,但现在当它到达字符串的其余部分时,它只显示' T'。

为什么?我知道我使用0的起始计数器,并且增加1,这就是为什么我得到了' T',但为什么我仍然会回来" \ t"每次如果我增加1。

" \ t"只考虑1个字符? 我也检查了这篇文章,这似乎与我的具体问题无关。 how many spaces are considered in \t

PS。对不起,我想确保人们完全理解我的问题。

1 个答案:

答案 0 :(得分:4)

要回答您的问题,是的,\t被视为单个字符。它可以代表屏幕上的多个空格是程序的一个功能,它选择这样做,但制表符仅占用一个字符的空间。