本文整理汇总了C#中System.Globalization.CultureInfo.GetOrInvaliant方法的典型用法代码示例。如果您正苦于以下问题:C# CultureInfo.GetOrInvaliant方法的具体用法?C# CultureInfo.GetOrInvaliant怎么用?C# CultureInfo.GetOrInvaliant使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类System.Globalization.CultureInfo
的用法示例。
在下文中一共展示了CultureInfo.GetOrInvaliant方法的5个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IndexOfN
/// <summary>
/// 문자열에서 N 번째 찾을 sub string의 인덱스 (인덱스는 0부터 시작합니다.) 를 반환합니다.
/// </summary>
/// <param name="s">원본 문자열</param>
/// <param name="sub">찾을 문자열</param>
/// <param name="nth">nth 번째 검색</param>
/// <param name="ignoreCase">대소문자 구분 여부</param>
/// <param name="culture">문화권</param>
/// <returns>찾은 위치, 검색 실패시에는 -1을 반환, 인덱스는 0부터 시작합니다.</returns>
public static int IndexOfN(this string s, string sub, int nth, bool ignoreCase = true, CultureInfo culture = null) {
if(IsEmpty(s) || IsEmpty(sub))
return -1;
culture = culture.GetOrInvaliant();
string sourceStr, subStr;
if(ignoreCase) {
sourceStr = s.ToUpper(culture);
subStr = sub.ToUpper(culture);
}
else {
sourceStr = s;
subStr = sub;
}
int index = 0;
int length = sourceStr.Length;
int sublen = subStr.Length;
for(int i = 0; i < nth; i++) {
index = sourceStr.IndexOf(subStr, index, length - index, StringComparison.Ordinal);
if(index < 0)
return -1;
if(i == (nth - 1))
return index;
index += sublen;
if(index >= length)
break;
}
return -1;
}
示例2: Compare
/// <summary>
/// 문자열을 <see cref="System.Globalization.CultureInfo.CurrentCulture"/>를 이용하여 비교한다.
/// </summary>
/// <remarks>
/// string.Compare 에 관련된 많은 함수들이 제공되므로 더 자세한 제어는 그 함수를 이용하세요.
/// </remarks>
/// <param name="s1">비교 문자열 1</param>
/// <param name="s2">비교 문자열 2</param>
/// <param name="ignoreCase">대소문자 구분 여부</param>
/// <param name="culture">문화권</param>
/// <returns>s1과 s2가 같다면 0, s1 > s2 면 양수, s1 < s2 이면 음수</returns>
public static int Compare(this string s1, string s2, bool ignoreCase = true, CultureInfo culture = null) {
culture = culture.GetOrInvaliant();
#if !SILVERLIGHT
return string.Compare(s1, s2, ignoreCase, culture);
#else
return string.Compare(s1, s2, CultureInfo.InvariantCulture, (ignoreCase) ? CompareOptions.IgnoreCase : CompareOptions.None);
#endif
}
示例3: Replace
/// <summary>
/// 원본 문자열에서 oldPattern에 해당하는 문자열을 newPattern의 문자열로 교체한다.
/// </summary>
/// <param name="S">원본 문자열</param>
/// <param name="oldPattern">바뀔 문자열</param>
/// <param name="newPattern">새로운 문자열</param>
/// <param name="ignoreCase">대소문자 구분 여부</param>
/// <param name="culture"><c>CultureInfo</c></param>
/// <returns>바뀐 문자열</returns>
public static string Replace(this string S, string oldPattern, string newPattern, bool ignoreCase = true,
CultureInfo culture = null) {
if(S.IsEmpty())
return S;
oldPattern.ShouldNotBeEmpty("oldPattern"); // 공백일 수도 있으므로
culture = culture.GetOrInvaliant();
string searchStr, pattern;
var result = new StringBuilder(S.Length * 2);
if(ignoreCase) {
searchStr = S.ToUpper(culture);
pattern = oldPattern.ToUpper(culture);
}
else {
searchStr = S;
pattern = oldPattern;
}
var startIndex = 0;
var length = S.Length;
var offset = startIndex;
do {
startIndex = searchStr.IndexOf(pattern, offset, StringComparison.Ordinal);
if(startIndex < 0) {
result.Append(S.Substring(offset, length - offset));
break;
}
if(startIndex - offset > 0)
result.Append(S.Substring(offset, startIndex - offset));
result.Append(newPattern);
offset = startIndex + pattern.Length;
} while(startIndex >= 0);
return result.ToString();
}
示例4: WordCount
/// <summary>
/// 지정된 문자열에 지정된 패턴이 검색되는 횟수를 반환한다.
/// </summary>
/// <param name="text">대상 문자열</param>
/// <param name="pattern">검색 문자열 패턴</param>
/// <param name="ignoreCase">대소문자 구분 여부</param>
/// <param name="culture">특정 CultureInfo</param>
/// <returns>검색 횟수</returns>
public static int WordCount(string text, string pattern, bool ignoreCase = true, CultureInfo culture = null) {
if(IsEmpty(text) || IsEmpty(pattern))
return 0;
culture = culture.GetOrInvaliant();
StringComparison comparision;
if(ignoreCase)
comparision = (culture == CultureInfo.InvariantCulture)
? StringComparison.InvariantCultureIgnoreCase
: StringComparison.CurrentCultureIgnoreCase;
else
comparision = (culture == CultureInfo.InvariantCulture)
? StringComparison.InvariantCulture
: StringComparison.CurrentCulture;
int count = 0;
int index = 0;
int pattenLength = pattern.Length;
int maxLength = text.Length - pattenLength;
do {
index = text.IndexOf(pattern, index, comparision);
if(index < 0)
break;
count++;
index += pattenLength;
} while(index <= maxLength);
return count;
}
示例5: Split
/// <summary>
/// 지정된 문자열을 지정된 패턴을 구분자로 하여 문자열 배열로 만든다.
/// </summary>
/// <param name="s">대상 문자열</param>
/// <param name="pattern">구분할 문자열</param>
/// <param name="ignoreCase">대소문자 구분 여부 </param>
/// <param name="culture"><c>CultureInfo</c></param>
/// <returns>문자열 1차원 배열</returns>
public static string[] Split(this string s, string pattern, bool ignoreCase = true, CultureInfo culture = null) {
if(IsEmpty(s))
return new string[0];
if(IsEmpty(pattern))
return new[] { s };
culture = culture.GetOrInvaliant();
string searchStr, searchPattern;
if(ignoreCase) {
searchStr = s.ToUpper(culture);
searchPattern = pattern.ToUpper(culture);
}
else {
searchStr = s;
searchPattern = pattern;
}
//StringList sl = new StringList();
var sl = new List<string>();
int startIndex;
int offset = 0;
int length = s.Length;
do {
startIndex = searchStr.IndexOf(searchPattern, offset, StringComparison.Ordinal);
if(startIndex < 0) {
sl.Add(s.Substring(offset, length - offset));
break;
}
if(startIndex - offset > 0)
sl.Add(s.Substring(offset, startIndex - offset));
offset = startIndex + pattern.Length;
} while(startIndex > 0);
return sl.ToArray();
}