初学C# | 通过小练习“格式化姓名”,学习string类型的Substring()方法,ToUpper()方法,ToLower()方法,Split()方法;

问题描述:

将用户姓名格式成姓和名首字母大写,其它字母小写并去掉中间空格的形式

比如输入为“waNG li li”格式后为“WangLiLi”

可以兼容两字名和四字名

本题所要使用的方法简介:

public string ToLower()
把字符串转换为小写并返回。

public string ToUpper()
把字符串转换为大写并返回。

String.SubString(int   index,int   length)   
index:开始位置,从0开始     length:你要取的子字符串的长度 

public string[] Split( params char[] separator ) 
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。

public string[] Split( char[] separator, int count ) 
返回一个字符串数组,包含当前的 string 对象中的子字符串,子字符串是使用指定的 Unicode 字符数组中的元素进行分隔的。int 参数指定要返回的子字符串的最大数目。

这些都是官方文档的定义,虽然不是那么通俗,但是很精确,遇到了我再讲解  ;

解题思路:

由于姓名输入的格式是由空格隔开,并且大小写混乱,可以将其读入到一个字符串中,然后使用Split(‘ ’)方法,通过空格单字符切割(注意:空格为单字符,使用单引号即可)为字符串数组;

然后for循环,这时考虑到数组中的每个元素都要求首字母大写,其他字母小写,毫无疑问是要你使用string类型的ToUpper()方法和ToLower()方法,即首字母使用ToUpper()方法,其它字母使用ToLower(),这是首先想到Substring方法切割字符串,即将首字母和其它字母切割开,当然最后还要连起来;

有了解题思路,我们就开始写代码

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;

class FormattingName
{
	static void Main(string[] args)
	{
		//变量初始化,注意string类型变量初始化可以使用string.Empty,减小内存占用
		//原因Empty是C#中提前定义的空串,这样直接引用,不用再申请新的内存空间
		//注意:最好不要用null,null直接为空没有申请地址空间,不能调用string方法
		string _name = string.Empty;
		_name = Console.ReadLine();

		string[] _word = _name.Split(' ');
		for(int i=0; i<_word.Length; i++)
		{
			//使用Substring()方法将字符串分为首位和剩下N位两部分,
			//分别用ToUpper()方法和ToLower()方法格式化大小写,然后连接;
			//Substring(int index,int length)
			//index: 开始位置,从0开始
			//length:要截取的字符串长度
			_word[i] = _word[i].Substring(0 ,1).ToUpper() 
			           + _word[i].Substring( 1, _word[i].Length-1).ToLower();
		}

		foreach(string word in _word)
		{
			Console.Write(word);
		}

		Console.ReadLine();
	}
}

这里想说一些,Split()方法,有好几种用法,不光可以单字符切割,还可以使用字符串切割,当然自己重载Split()方法也行,

刚接触C#,还有很多要学习的地方,有错误的地方欢迎指正;

  • 2
    点赞
  • 6
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值