PascalCase(他の名前はUpperCamelCase)の文字列値をC#のkebab-caseに変換するにはどうすればよいですか?PascalCaseをC#でkebab-caseに変換するにはどうすればよいですか?
ここで"very-long-name"
PascalCase(他の名前はUpperCamelCase)の文字列値をC#のkebab-caseに変換するにはどうすればよいですか?PascalCaseをC#でkebab-caseに変換するにはどうすればよいですか?
ここで"very-long-name"
から"VeryLongName"
は、正規表現であることを行う方法である:ここでは
public static class StringExtensions
{
public static string PascalToKebabCase(this string value)
{
if (string.IsNullOrEmpty(value))
return value;
return Regex.Replace(
value,
"(?<!^)([A-Z][a-z]|(?<=[a-z])[A-Z])",
"-$1",
RegexOptions.Compiled)
.Trim()
.ToLower();
}
}
は、正規表現を使用せずにそれを行う方法です:
public static string PascalToKebabCase(this string str)
{
if (string.IsNullOrEmpty(str))
return string.Empty;
var builder = new StringBuilder();
builder.Append(char.ToLower(str.First()));
foreach (var c in str.Skip(1))
{
if (char.IsUpper(c))
{
builder.Append('-');
builder.Append(char.ToLower(c));
}
else
{
builder.Append(c);
}
}
return builder.ToString();
}
あなたがうまくの問題を持っていると思います大文字を使用する既知の略語。例:COMObject
。この解決策は明らかに機能しません。
@Nasreddine私には1つの解決策がありますが、私は選択肢を見ることに興味があります。質問自体が適切である限り、自分の答えはSOで許されます。 – Mikhail
ちょうどチェックされているだけでなく、許可されているだけでなく、[お勧め](https://blog.stackoverflow.com/2011/07/its-ok-to-ask-and-answer-your-own-questions/)。実際の解決策を提供するために+1してください。 – Nasreddine
正解が既に投稿されていると回答しない人もいるかもしれないので、他の解決策を探していると言えるでしょう。 – Nasreddine