|
|
|
|
移动端

2.7.4 字符串作为数组使用

《C# 6.0本质论(第5版)》第2章数据类型,本章将探讨这些数据类型,更深入地研究字符串类型,并引入数组的概念。本节为大家介绍字符串作为数组使用。

作者:周靖/庞燕 译来源:人民邮电出版社|2017-07-21 16:56

【新品产上线啦】51CTO播客,随时随地,碎片化学习

2.7.4 字符串作为数组使用

访问string类型的变量类似于访问字符数组。例如,可调用palindrome[3]获取名为palindrome的string的第4个字符。但要注意,由于字符串是不可变的,所以不可能为字符串中的特定字符赋值。所以,将palindrome声明为string,palindrome[3]='a'这样的写法在C#中是不允许的。代码清单2-53使用数组访问符来判断命令行上的参数是不是选项(选项的第一个字符是-)。

代码清单2-53 查找命令行选项

  1. string[] args;  
  2. ...  
  3. if(args[0][0] =='-')  
  4. {  
  5. //This parameter is an option  

上述代码使用了if语句,该语句将在第3章讲述。除此之外,还使用第一个数组访问符获取字符串数组args的第一个元素,并用第二个数组访问符获取字符串的第一个字符。因此代码清单2-54所示代码与清单2-53所示代码是等价的。

代码清单2-54 查找命令行选项(简化版)

  1. string[] args;  
  2. ...  
  3. string arg = args[0];  
  4. if(arg[0] == '-')  
  5. {  
  6. //This parameter is an option  

不仅可以使用数组访问符单独访问字符串中的字符, 还可以使用字符串的ToCharArray()方法,将整个字符串作为字符数组返回。获得字符数组后,可以使用System.Array.Reverse()方法反转数组中的元素,如代码清单2-55所示,该程序可以判断字符串是不是回文。

代码清单2-55 反转字符串

  1. class Palindrome  
  2. {  
  3. static void Main()  
  4. {  
  5. string reverse, palindrome;  
  6. char[] temp;  
  7. System.Console.Write("Enter a palindrome: ");  
  8. palindrome = System.Console.ReadLine();  
  9. // Remove spaces and convert to lowercase  
  10. reverse = palindrome.Replace(" ", "");  
  11. reversereverse = reverse.ToLower();  
  12. // Convert to an array  
  13. temp = reverse.ToCharArray();  
  14. // Reverse the array  
  15. System.Array.Reverse(temp);  
  16. // Convert the array back to a string and  
  17. // check if reverse string is the same.  
  18. if(reverse == new string(temp))  
  19. {  
  20. System.Console.WriteLine(  
  21. $"\"{palindrome}\" is a palindrome.");  
  22. }  
  23. else  
  24. {  
  25. System.Console.WriteLine(  
  26. $"\"{palindrome}\" is NOT a palindrome.");  
  27. }  
  28. }  

输出2-22展示了结果。

输出2-22

  1. Enter a palindrome: NeverOddOrEven  
  2. "NeverOddOrEven" is a palindrome. 


喜欢的朋友可以添加我们的微信账号:

51CTO读书频道二维码


51CTO读书频道活动讨论群:342347198

【责任编辑:book TEL:(010)68476606】

回书目   上一节   下一节
点赞 0
分享:
大家都在看
猜你喜欢

读 书 +更多

网络管理员考试考前冲刺预测卷及考点解析

本书依据最新版《网络管理员考试大纲》的考核要求,深入研究了历年网络管理员考试试题的命题风格和试题结构,对考查的知识点进行了提炼,并...

订阅51CTO邮刊

点击这里查看样刊

订阅51CTO邮刊