如何使C#中的最后一个单词大写?

如何使C#中的最后一个单词大写?,c#,string,visual-studio,C#,String,Visual Studio,如何通过从键盘上读取姓名和姓氏,并仅将姓氏字母设置为大号来打印 string name; Console.Write("Name and surname:"); name=Console.ReadLine(); int word= name.LastIndexOf(" "); Console.WriteLine(name.Substring(word).ToUpper()); 我可以写姓氏,但我不能加名字。对不起,我的英语…我会用.Split()来区分名字和姓氏 Console.Write(

如何通过从键盘上读取姓名和姓氏,并仅将姓氏字母设置为大号来打印

string name;
Console.Write("Name and surname:");
name=Console.ReadLine();

int word= name.LastIndexOf(" ");
Console.WriteLine(name.Substring(word).ToUpper());
我可以写姓氏,但我不能加名字。对不起,我的英语…

我会用
.Split()
来区分名字和姓氏

Console.Write("Name and surname:");
string name = Console.ReadLine();
Console.WriteLine(name.Split().First().ToUpper());
Console.WriteLine(name.Split().Last().ToUpper());

如果您想继续使用
Substring()
这将是一种方法

Console.Write("Name and surname:");
string name = Console.ReadLine();
int word = name.LastIndexOf(" ");
Console.WriteLine(name.Substring(word+1).ToUpper());
Console.WriteLine(name.Substring(0, word).ToUpper());
我会使用
.Split()
来分隔名字和姓氏

Console.Write("Name and surname:");
string name = Console.ReadLine();
Console.WriteLine(name.Split().First().ToUpper());
Console.WriteLine(name.Split().Last().ToUpper());

如果您想继续使用
Substring()
这将是一种方法

Console.Write("Name and surname:");
string name = Console.ReadLine();
int word = name.LastIndexOf(" ");
Console.WriteLine(name.Substring(word+1).ToUpper());
Console.WriteLine(name.Substring(0, word).ToUpper());

我解决了我的问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;/*Add this library for ToTitleCase*/

namespace String_denemeler
{
    class Program
    {
        public static string ToTitleCase(string Text)/*And Add this for ToTitleCase*/
        {
            return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Text);
        }
        static void Main(string[] args)
        {
            string name;
            Console.Write("Name&Surname:");
            name = Console.ReadLine();
            name= ToTitleCase(name);

            int index = name.LastIndexOf(" ");
            Console.WriteLine(name.Substring(0, index) + name.Substring(index).ToUpper());

        }
    }
}

我解决了我的问题。

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Threading.Tasks;
using System.Globalization;/*Add this library for ToTitleCase*/

namespace String_denemeler
{
    class Program
    {
        public static string ToTitleCase(string Text)/*And Add this for ToTitleCase*/
        {
            return CultureInfo.CurrentCulture.TextInfo.ToTitleCase(Text);
        }
        static void Main(string[] args)
        {
            string name;
            Console.Write("Name&Surname:");
            name = Console.ReadLine();
            name= ToTitleCase(name);

            int index = name.LastIndexOf(" ");
            Console.WriteLine(name.Substring(0, index) + name.Substring(index).ToUpper());

        }
    }
}

假设姓氏总是最后一个,只需使用
var-lasname=name.split(“”)[1]
,然后在上面使用
ToUpper()
。首先向用户询问姓名是否比询问姓氏更简单。最好是在输入过程中拆分此标记,而不是在代码中处理此标记?请注意,标记描述中说“不要在有关仅在Visual Studio中编写的代码的问题上使用此标记。”请删除您的问题。假设姓氏总是最后一个,只需使用
var-lasname=name.split(“”)[1]
然后在上面使用
ToUpper()
。首先向用户询问姓名而不是询问姓氏不是更简单吗。最好是在输入过程中拆分此标记,而不是在代码中处理此标记?请注意,标记描述中说“不要在有关仅在Visual Studio中编写的代码的问题上使用此标记”。请删除您的问题。您如何处理像Wernher M.Von Braun这样的全名?Thnx非常有用(:@Steve这不是问题的一部分,但我可以假设这样的名字是存在的,并且仍然假设,如果名字是第一个单词……没有简单的答案。解析学位或贵族身份,识别第二/第三个名字等等,以及如何处理像Wernher M.Von Braun这样的全名?Thnx非常有用(:@Steve这不是问题的一部分,但我可以假设这样的名字是存在的,并且仍然假设,如果名字是第一个单词……没有简单的答案。解析学位或贵族身份,识别第二/第三个名字等等