c# - 我不知道为什么我在 temp 的索引 13 处得到 "0"

标签 c# string

我正在尝试将 ini 字符串重新排列为 temp,外循环用于 temp 中的字符数,内循环用于查找PC2_table 中的索引号并将字符 ini[j] 附加到 temp,一切正常,但我不知道为什么我'我在索引 13 处什么也得不到。

string ini = "000100010000110011110100001001101001001110101101";
Console.WriteLine(ini.Length + " " +ini[0]);            
int[] PC2_table = { 13 ,   16 ,  10 ,   23 ,    0,    4,
                     2 ,   27 ,  14 ,    5 ,   20,    9,
                    22 ,   18 ,  11 ,    3 ,   25,    7,
                    15 ,    6 ,  26 ,   19 ,   12,    1,
                    40 ,   51 ,  30 ,   36 ,   46,   54,
                    29 ,   39 ,  50 ,   44 ,   32,   47,
                    43 ,   48 ,  38 ,   55 ,   33,   52,
                    45 ,   41 ,  49 ,   35 ,   28,   31};

ini = " " + ini;   // because PC2 table main indexing 1 sy hai
string temp = null;
for (int i = 0; i < 56; i++)
{
    for (int j = 0; j < PC2_table.Length; j++)
    {                    
     if(PC2_table[j] == i)
     {
         Console.WriteLine(i + " " +j + " " + ini[j] );
         temp += ini[j];
         break;
     }                 
    }
}
Console.WriteLine(temp);

最佳答案

i = 13 处,当 j = 0 时,发生的情况是:

PC2_table[j] = PC2_table[0] = 13

并且i13,因此您进入if block :

if(PC2_table[j] == i){ //enters
}

但是:

ini[j] = ini[0] = " ";

是一个空格,因为:

string ini = "000100010000110011110100001001101001001110101101";
...
ini = " " + ini; //note the addition of " " in front of original ini    

请注意,现在 ini 是:

" 000100010000110011110100001001101001001110101101" //the first element at index [0] is " "

而你这样做:

temp += ini[j]; //"1000001100110" + " " = "1000001100110 " //additional space

因此,您在第 13 个索引中添加了您的空间:

关于c# - 我不知道为什么我在 temp 的索引 13 处得到 "0",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36574473/

相关文章:

c# - 为什么 IServerStreamWriter 不发送通知响应?

java - 如何检测互联网访问?

c# - ASP.net 健康监控是否与 asmx web 服务一起工作

C#:如何直接在 java.exe 中执行此命令行?

python - 使用空格分隔符和最大长度拆分字符串

java - 奇怪的 Java String[] 问题,包含值,但在插入 List<String[]> 时表现得像 null

c# - 绑定(bind)数据网格按钮 mvvm

c# - 字符串中只允许单一类型的标记

java - 我无法让字符串分割方法正常工作

java使用 "../../"构建的相对路径无法识别,为什么?