■ 이전 단어를 구하는 방법을 보여준다.
▶ 예제 코드 (C#)
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 |
/// <summary> /// 단어 구분자 리스트` /// </summary> private static string _wordDelimeterList = "`~!@#$%^&*()-_=+[{]}|;:'\",<.>/? \t\n\r"; #region 이전 단어 구하기 - GetPreviousWord(source, currentPosition) /// <summary> /// 이전 단어 구하기 /// </summary> /// <param name="source">소스 문자열</param> /// <param name="currentPosition">현재 위치</param> /// <returns>이전 단어</returns> public string GetPreviousWord(string source, int currentPosition) { int firstPosition = -1; int lastPosition = -1; if((currentPosition + 1) > source.Length) { return string.Empty; } for(int i = currentPosition; i >= 0; i--) { if(_wordDelimeterList.IndexOf(source[i]) != -1) { lastPosition = i - 1; break; } } if(lastPosition == -1) { return null; } for(int i = lastPosition; i >= 0; i--) { if(_wordDelimeterList.IndexOf(source[i]) != -1) { firstPosition = i + 1; break; } } if(firstPosition == -1) { firstPosition = 0; } return source.Substring(firstPosition, lastPosition - firstPosition + 1); } #endregion |