C# 如何获取“.”之前的最后一个字符串字符

C# 如何获取“.”之前的最后一个字符串字符,c#,asp.net,.net,string,C#,Asp.net,.net,String,我知道有好几种代码,但我仍然不能得到准确的答案。我想在。。我尝试了给定的代码,但它不起作用。 比如说 String Test="~/Images/31/Demo.jpg"; //this code not work Test= Test.Substring(0, Test.LastIndexOf(".") + 1); 输出 Test="Demo"; 无需解析,使用框架!这就是你真正想要的: String Test="~/Images/31/Demo.jpg"; Path.GetFi

我知道有好几种代码,但我仍然不能得到准确的答案。我想在。。我尝试了给定的代码,但它不起作用。 比如说

String Test="~/Images/31/Demo.jpg";

//this code not work

   Test= Test.Substring(0, Test.LastIndexOf(".") + 1);
输出

Test="Demo";

无需解析,使用框架!这就是你真正想要的:

String Test="~/Images/31/Demo.jpg";
Path.GetFileNameWithoutExtension(Test);

substring方法的第一个参数是start index,您希望从的索引开始。是负一。substring方法的第二个参数是从开始索引返回的字符串的长度。如果只需要一个字符,则将为第二个参数传递一个字符。试试这个:

Test = Test.Substring(Test.LastIndexOf(".") - 1, 1);

您想要单个字符还是一些子字符串?如果您想要一个子字符串,它应该从哪里开始?它应该在上次出现“.”之前开始。这个问题的措辞非常奇怪。在本例中,“.”之前的字符是“o”。如果您想要的是最后一个“/”和最后一个“.”之间的子字符串,请更清楚地指定它。这可能有助于你避免大量的否决票。如果他想让角色在他想要的点之前,他就选o。为什么要走这条路?这不是关于扩展。。我希望在最后一个字符之前有一个子字符串。@Serv OP声明他们需要字符,但随后写入他们希望输出为Demo。我想OP的意思是单词而不是字符。@Subhash您希望得到演示吗?如果是这样,这个答案是正确的。@Serv所需的输出肯定是正确的-问题的措辞不正确。