CSharp examples for System:Char
Searches a string for an instance of a repeated character from specified startIndex.
// Copyright ? 2011, Grid Protection Alliance. All Rights Reserved. using System.Text.RegularExpressions; using System.Text; using System.IO;// www. ja v a 2 s .c o m using System.Globalization; using System.ComponentModel; using System.Collections.Generic; using System; public class Main{ /// <summary> /// Searches a string for an instance of a repeated character from specified <paramref name="startIndex"/>. /// </summary> /// <param name="value">The string to process.</param> /// <param name="startIndex">The index from which to begin the search.</param> /// <returns>The index of the first instance of any character that is repeated or (-1) if no repeated chars found.</returns> public static int IndexOfRepeatedChar(this string value, int startIndex) { if (string.IsNullOrEmpty(value)) return -1; if (startIndex < 0) return -1; char c = (char)0; for (int i = startIndex; i < value.Length; i++) { if (value[i] != c) c = value[i]; else { //at least one repeating character return i - 1; } } return -1; } /// <summary> /// Searches a string for an instance of a repeated character. /// </summary> /// <param name="value">The string to process.</param> /// <returns>The index of the first instance of any character that is repeated or (-1) if no repeated chars found.</returns> public static int IndexOfRepeatedChar(this string value) { return IndexOfRepeatedChar(value, 0); } /// <summary> /// Searches a string for a repeated instance of the specified <paramref name="characterToFind"/>. /// </summary> /// <param name="value">The string to process.</param> /// <param name="characterToFind">The character of interest.</param> /// <returns>The index of the first instance of the character that is repeated or (-1) if no repeated chars found.</returns> public static int IndexOfRepeatedChar(this string value, char characterToFind) { return IndexOfRepeatedChar(value, characterToFind, 0); } /// <summary> /// Searches a string for a repeated instance of the specified <paramref name="characterToFind"/> from specified <paramref name="startIndex"/>. /// </summary> /// <param name="value">The string to process.</param> /// <param name="characterToFind">The character of interest.</param> /// <param name="startIndex">The index from which to begin the search.</param> /// <returns>The index of the first instance of the character that is repeated or (-1) if no repeated chars found.</returns> public static int IndexOfRepeatedChar(this string value, char characterToFind, int startIndex) { if (string.IsNullOrEmpty(value)) return -1; if (startIndex < 0) return -1; if (characterToFind == 0) return -1; char c = (char)0; for (int i = startIndex; i < value.Length; i++) { if (value[i] == characterToFind) { if (value[i] != c) c = value[i]; else { //at least one repeating character return i - 1; } } else c = (char)0; } return -1; } }