C#实现字符串单词逆序输出
问题: 给定一个字符串testString
。对字符串的单词进行逆序输出
例:
input String: This is a test
output String: test a is This
input String: This is a test, using C#
output String: C# using ,test a is This
首先,分析问题,对于一个给定的字符串,如何区分单词?
- 单词在距离最近的两个空格之间
- 或者两个标点符号
- 或者空格与标点符号、标点符号与空格之间
- 注意,由于距离最近,所以当距离为0时,即是说它们之间没有其它字符时,获取的单词为空串
“”
- 对于单词,用
i, j
两个变量分别指向单词的第一个字符和单词的最后一个字符,根据上述区分单词的条件,用for循环顺序输出该单词的字符 - 对于空格和标点符号,遇到一个便输出一个
方法:
写一个isPunctuation
函数,用来判定一个字符是不是标点符号
/// <summary>
/// 判定参数str是否为标点符号
/// </summary>
/// <param name="str"></param>
/// <returns>
/// 若是标点符号,返回true,否则返回false
/// </returns>
public static Boolean isPunctuation(String str)
{
String[] punctuations = {
",", ".", "?","!"};//标点符号数组
int l = punctuations.Length;
for(int i = 0; i < l; i++)
{
if(str == punctuations[i])
{
return