输入空格是否会产生异常
using System;
using System.Collections.Generic;
using System.Text;
namespace Camelname
{
class Program
{
static void Main(string[] args)
{
string name; //原是字符串
string camelName; //按Camel规则输出
Console.WriteLine("输入字符串,单词之间用空格分开");
name = Console.ReadLine();
camelName =ConvertToCamel(name);
Console.WriteLine("转换后:{0}",camelName);
Console.ReadLine();
}
private static string ConvertToCamel(string name)
{
string camelName;
string[] word;
string tempWord;
//用空格分隔字符串
word = name.Split(' ');
//将第一个单词转为小写
camelName = word[0].ToLower();
for (int i = 1; i < word.Length; i++)
{
//取出单词的第一个字母转为大写
tempWord = word[i].Substring(0, 1).ToUpper();
camelName = camelName + tempWord;
//剩下的字母小写
tempWord = word[i].Substring(1).ToLower();
camelName = camelName + tempWord;
}
return camelName;
}
}
}
------解决方案--------------------会,如果输入一个空格,那么:
word = name.Split(' ');
这个将分析出两个成员的word数组,每个成员均是:"",即空串。
这本来不会导致异常,但你后面的程序:
for (int i = 1; i < word.Length; i++)
{
//取出单词的第一个字母转为大写
tempWord = word[i].Substring(0, 1).ToUpper();
camelName = camelName + tempWord;
//剩下的字母小写
tempWord = word[i].Substring(1).ToLower();
camelName = camelName + tempWord;
}
这个地方访问SubString(0,1)这里会出错,因为你的字符串是空串,无法从0位置取出1个字符。会产生IndexOutOfRange异常。
一种简单修改的方法是:
在最前面加上:
name = name.Trim();