Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/256.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 如何在每个唯一字母后拆分字符串_C# - Fatal编程技术网

C# 如何在每个唯一字母后拆分字符串

C# 如何在每个唯一字母后拆分字符串,c#,C#,我目前正在尝试将用户选择的字符串关键字拆分为每个字母。然而,我不能说在特定的字母后拆分,因为在程序运行之前,我不可能知道它将是什么单词。我希望每封信都以某种方式单独存储,以便以后我可以参考这些 到目前为止,我已经尝试使用.Split方法来实现这一点,但在我的代码中没有显示出任何运气 int keyLength = txtKeyword.Text.Length; // Calculate length of keyword string KeyCount = txtKeyword.Text;

我目前正在尝试将用户选择的字符串关键字拆分为每个字母。然而,我不能说在特定的字母后拆分,因为在程序运行之前,我不可能知道它将是什么单词。我希望每封信都以某种方式单独存储,以便以后我可以参考这些

到目前为止,我已经尝试使用.Split方法来实现这一点,但在我的代码中没有显示出任何运气

int keyLength = txtKeyword.Text.Length;  // Calculate length of keyword
string KeyCount = txtKeyword.Text;      // Count the characters 
string[] Count3 = KeyCount.Split(char, StringSplitOptions.None);

string[] keywordArray = new string[keyLength];

for (int i = 0; i < keyLength ; i++)
{
    keywordArray[i] = Count3[i];

    listBox1.Items.Add(keywordArray[i]);
}
我不确定原因的括号中出现了一个错误。

我建议使用:

char[] charArray = KeyCount.ToCharArray();
但您的数据类型将是char[],而不是string[]

如果您确实需要字符串,您可以执行以下操作:

string[] stringArray = charArray.Select(c => c.ToString()).ToArray();

我希望我能很好地理解您的问题,但这对我来说太容易了,因为我根本没有使用split:

char[] splittedText;
string test = "narmin";

private void Window_Loaded(object sender, RoutedEventArgs e)
{
    splittedText = new char[test.Length];
    for (int i =0 ; i<test.Length;i++)
    {
       splittedText[i] = test[i];
    }
}

您得到一个错误,因为它需要一个char,而不是char类型。 以下是拆分方法的示例性用法

正如Compufreak已经指出的,您可以使用ToCharray将字符串转换为char[]。 以下是使用原始字符串的单个字符的更深入的方法:

创建数组后,有几种方法可以访问字符:

// 1. Iterate through the array with a foreach loop
foreach (char character in charArray)
{
    // Do stuff with the character
    char tempChar = character;
    if (character == 'a')
    {
        // Do stuff
    }
}

// 2. Iterate through the array with a for loop
for (int i = 0; i < charArray.Length; i++)
{
    char tempChar = charArray[i];
}

// 3. Get the character at a specific position (read: index) in the array
char tempChat = charArray[0];

// The string array works exactly the same for all three methods
foreach (string singleString in stringArray)
{
    // Do stuff with the string
    string tempString = singleString;
    if (tempString == "a")
    {
        // Do stuff
    }
}

正如Compufreak所说的use.ToCharray,您得到的错误是因为您试图将Char类型传递到Split中,但它不希望这样-请参阅可用的重载。可能重复的我不确定我是否理解您正在尝试执行的操作。如果你有一个关键字,那么它只是一个字符串,对吗?不需要拆分-您只需直接访问底层字符数组。你们需要维持信件的顺序吗?您需要删除重复项还是对它们进行排序?我已经尝试过使用它,但还不确定是否需要char或string。以后我如何访问这个数组?它只是一个普通变量,您可以像其他变量一样使用属性或类似的东西来访问和存储它。你应该自己读一读——不可能从你提供的代码中知道怎么做,这也不是最初问题的范围。我编辑了我的答案并删除了var关键字,以使生成的类型更加清晰。
// Get the length of the Keyword (amount of characters in the string)    
int keyLength = txtKeyword.Text.Length; 

// Store the Text of the TextBox in a variable
string keywordString = txtKeyword.Text;

// Turn the string into an array of chars
char[] charArray = keywordString.ToCharArray(); 

// Turn the array of chars into an array of strings
string[] stringArray = charArray.Select(c => c.ToString()).ToArray(); 
// 1. Iterate through the array with a foreach loop
foreach (char character in charArray)
{
    // Do stuff with the character
    char tempChar = character;
    if (character == 'a')
    {
        // Do stuff
    }
}

// 2. Iterate through the array with a for loop
for (int i = 0; i < charArray.Length; i++)
{
    char tempChar = charArray[i];
}

// 3. Get the character at a specific position (read: index) in the array
char tempChat = charArray[0];

// The string array works exactly the same for all three methods
foreach (string singleString in stringArray)
{
    // Do stuff with the string
    string tempString = singleString;
    if (tempString == "a")
    {
        // Do stuff
    }
}
for (int i = 0; i < keywordString.Length; i++)
{
    char tempChar = keywordString[i];
}

foreach (char character in keywordString)
{
    // As seen above
}

char singleChar = keywordString[0];