如何确保c#字符串以句号结束?

本文关键字:结束 字符串 何确保 确保 | 更新日期: 2023-09-27 18:06:54

我有这样的c#字符串:

"abc";
"def.";

当我将这些读入另一个变量时,我需要一些简单的方法来检查字符串的最后一个字符,如果它不是一个句点,则在该字符串上附加一个句点。

有没有人有什么简单的方法可以让我做到这一点?

如何确保c#字符串以句号结束?

if (!str.EndsWith(".")) str += ".";

为什么你不能用另一种方式来做呢?

namespace ExtensionMethods
{
    public static class StringExtensionMethods
    {
        public static string EnsureEndsWithDot(this string str)
        {
            if (!str.EndsWith(".")) return str + ".";
            return str;
        }
    }
}
using System;
namespace StackoverflowConsoleApp
{
    class Program
    {
        static void Main(string[] args)
        {
          Console.WriteLine(StringExtensionMethods.EnsureEndsWithDot("abc"));
        }
    }
}
namespace StackoverflowConsoleApp
{
    /// <summary>
    /// This class contains string extensions
    /// </summary>
    public static class StringExtensionMethods
    {
        /// <summary>
        /// constant dot
        /// </summary>
        private const string dot = ".";
        /// <summary>
        /// Ensures the string ends with dot character
        /// </summary>
        /// <param name="text"><see cref="string"/>Takes a string parameter</param>
        /// <returns><see cref="string"/>returns a string parameter</returns>
        public static string EnsureEndsWithDot(this string text)
        {
            if (!text.EndsWith(dot))
            {
                return string.Format("{0}{1}", text, dot);
            }
            return text;
        }
    }
}

这应该是…

// Appends a ., or if myString was empty to begin with, makes it "."
myString = (myString != null && myString.Length != 0 && myString[myString.Length - 1] == '.') ? myString : (myString ?? "") + ".";