Logo
Section 1 / 6

字符串内部

学习如何访问字符串中的各个元素。

导入

字符串内部

学习如何访问字符串中的各个元素。

集合

集合是一个通用术语,用于将多个值组合成一个整体。我们在现实生活中经常使用集合——一本书是页面的集合,一列火车是车厢的集合,一个衣柜是衣物的集合。

...

字符串

字符串是由字符组成的集合,通常被视为一个单一单元。字符串用于存储名称、地址、消息等文本值。

字符串的初始化

以下程序演示了字符串的初始化:

1class Test 2{ 3 static void Main() 4 { 5 string string1 = "It is a string"; 6 System.Console.WriteLine(string1); 7 } 8}

在第5行,我们使用双引号 "" 声明一个 string 类型变量。

访问字符串中的字符

C# 允许我们通过整数索引来访问字符串中的单个字符。方法是在字符串变量名后用方括号包含索引号,如下所示的程序:

1class Test 2{ 3 static void Main() 4 { 5 string String1 = "Educative"; 6 System.Console.WriteLine(String1); 7 8 System.Console.WriteLine(String1[0]); 9 System.Console.WriteLine(String1[1]); 10 System.Console.WriteLine(String1[2]); 11 System.Console.WriteLine(String1[3]); 12 System.Console.WriteLine(String1[4]); 13 System.Console.WriteLine(String1[5]); 14 System.Console.WriteLine(String1[6]); 15 System.Console.WriteLine(String1[7]); 16 System.Console.WriteLine(String1[8]); 17 } 18}

上述代码逐行显示字符串的各个字符。第一个字符位于索引 0,索引沿字符串线性递增,如以下图示:

...
字符串值与索引

同样的程序也可以使用循环重写,以实现相同的功能,如下所示:

1class Test 2{ 3 static void Main() 4 { 5 string String1 = "Educative"; 6 int length = 9; 7 for (int i = 0; i < length; i++) 8 { 9 System.Console.WriteLine(String1[i]); 10 } 11 } 12}

字符串连接

使用 + 运算符将两个字符串连接起来称为连接,如下代码所示:

1class Test 2{ 3 static void Main() 4 { 5 string str1 = "Hello"; 6 string str2 = "Educative"; 7 string str3 = str1 + str2; 8 string str4 = str1 + " " + str2; 9 10 System.Console.WriteLine("str1: " + str1); 11 System.Console.WriteLine("str2: " + str2); 12 System.Console.WriteLine("str3: " + str3); // 无空格连接 13 System.Console.WriteLine("str4: " + str4); // 有空格连接 14 } 15}

在上述代码中:

  • 第7行:我们将 str1 和 str2 连接,并将结果存储在 str3 中。两个单词之间没有空格。
  • 第8行:我们将 str1、" " 和 str2 连接,并将结果存储在 str4 中。两个单词之间有空格。

字符串操作练习

以下是几个用于练习 C# 中字符串操作的示例程序。点击“显示答案”按钮将显示解决相应问题的程序。你可以将给出的解决方案复制粘贴到代码编辑器中,以确保你的输出与给定答案一致。编程中可能存在多种正确的解决方案。

反向打印字符

编写一个程序,逐行反向显示字符串中的每个字符。

示例输入

1"Educative"

示例输出

1e 2v 3i 4t 5a 6c 7u 8d 9E
1class Test 2{ 3 static void Main() 4 { 5 string String1 = "Educative"; 6 // 请在此处编写代码 7 } 8}

你可以在上方的代码编辑器中运行以下代码:

1class Test 2{ 3 static void Main() 4 { 5 string String1 = "Educative"; 6 7 System.Console.WriteLine(String1[8]); 8 System.Console.WriteLine(String1[7]); 9 System.Console.WriteLine(String1[6]); 10 System.Console.WriteLine(String1[5]); 11 System.Console.WriteLine(String1[4]); 12 System.Console.WriteLine(String1[3]); 13 System.Console.WriteLine(String1[2]); 14 System.Console.WriteLine(String1[1]); 15 System.Console.WriteLine(String1[0]); 16 } 17}

在上述程序中:

  • 我们使用变量 String1 存储文本 "Educative"。
  • 我们从最后一个索引开始,按逆序逐行显示 String1 的各个字符。

或者

你也可以在上方的代码编辑器中运行以下代码:

1class Test 2{ 3 static void Main() 4 { 5 string String1 = "Educative"; 6 7 for (int i = 8; i >= 0; i--) 8 { 9 System.Console.WriteLine(String1[i]); 10 } 11 } 12}

在上述程序中:

  • 我们使用变量 String1 存储文本 "Educative"。
  • 我们使用索引和 for 循环,按逆序逐行显示 String1 的各个字符。

字符串左移

编写一个程序,将字符串中的字符向左移动一位,并用句点替换最后一个位置。

示例输入

1myString = "Educative"

示例输出

1ducative.

提示:使用字符串连接。

1using System; 2class Test 3{ 4 static void Main() 5 { 6 string str1 = "Educative"; 7 // 请在此处编写代码 8 } 9}

你可以在上方的代码编辑器中运行以下代码:

1using System; 2class Test 3{ 4 static void Main() 5 { 6 string str1 = "Educative"; 7 string str2 = ""; 8 str2 += str1[1]; 9 str2 += str1[2]; 10 str2 += str1[3]; 11 str2 += str1[4]; 12 str2 += str1[5]; 13 str2 += str1[6]; 14 str2 += str1[7]; 15 str2 += str1[8]; 16 str2 = str2 + "."; 17 Console.WriteLine(str2); 18 } 19}

在上述程序中:

  • 我们使用变量 str1 存储文本 "Educative"。
  • 然后我们创建一个空字符串 str2。
  • str2 += str1[1] 将字符连接到 str2,相当于 str2 = str2 + str1[1]。
  • 对其余索引重复此步骤。

反转字符串

编写一个程序,将字符串的内容以相反顺序存储到另一个字符串中。

示例输入

1"Educative"

示例输出

1evitacudE
1class Test 2{ 3 static void Main() 4 { 5 string str1 = "Educative"; 6 // 请在此处编写代码 7 } 8}

你可以在上方的代码编辑器中运行以下代码:

1class Test 2{ 3 static void Main() 4 { 5 string str1 = "Educative"; 6 string str2 = ""; 7 str2 += str1[8]; 8 str2 += str1[7]; 9 str2 += str1[6]; 10 str2 += str1[5]; 11 str2 += str1[4]; 12 str2 += str1[3]; 13 str2 += str1[2]; 14 str2 += str1[1]; 15 str2 += str1[0]; 16 System.Console.WriteLine(str2); 17 } 18}

在上述程序中:

  • 我们使用变量 str1 存储文本 "Educative"。
  • 然后我们创建一个空字符串 str2。
  • str2 += str1[8] 将字符连接到 str2,相当于 str2 = str2 + str1[8]。
  • 对其余索引重复此步骤。

或者

你也可以在上方的代码编辑器中运行以下代码:

1class Test 2{ 3 static void Main() 4 { 5 string str1 = "Educative"; 6 string str2 = ""; 7 8 for (int j = 8; j >= 0; j--) 9 { 10 str2 += str1[j]; 11 } 12 13 System.Console.WriteLine(str2); 14 } 15}

在上述程序中:

  • 我们使用变量 str1 存储文本 "Educative"。
  • 然后我们创建一个空字符串 str2。
  • 我们使用 for 循环从 str1 的最后一个索引(8)开始,逐个将字符添加到 str2,直到索引为 0。

回文检测

回文是指正读和反读都相同的字符序列。编写一个程序,判断一个字符串是否为回文。字符串长度限制为五个字符。

示例输入 1

1"level"

示例输出 1

1Palindrome

示例输入 2

1"leve"

示例输出 2

1Not Palindrome
1class Test 2{ 3 static void Main() 4 { 5 string str = "level"; 6 // 请在此处编写代码 7 } 8}

你可以在上方的代码编辑器中运行以下代码:

1class Test 2{ 3 static void Main() 4 { 5 string str = "level"; 6 if (str[0] == str[4] && str[1] == str[3]) 7 { 8 System.Console.WriteLine("Palindrome"); 9 } 10 else 11 { 12 System.Console.WriteLine("Not Palindrome"); 13 } 14 } 15}

在上述代码中:

  • 我们使用变量 str 存储文本 "level"。
  • 我们比较字符串的第一个字符与最后一个字符,再比较第二个字符与倒数第二个字符,作为条件表达式。
  • 如果条件为真,则输出 "Palindrome",否则输出 "Not Palindrome"。

C# 中的循环

值的数组