static void Main(string[] args) { string S = "abcdefghi"; IString str; str = new SeqString(S); IString str4 = new SeqString("mnqp"); Console.WriteLine(str.Insert(0, str4)); }
/// <summary> /// ��ָ��λ��ȡ�Ӵ� /// </summary> /// <param name="StartIndex">ȡ�Ӵ���λ��</param> /// <param name="Count">�Ӵ��ij���</param> /// <returns>ȡ�õ��Ӵ�</returns> public IString SubString(int StartIndex, int Count) { if (StartIndex < 0 || StartIndex > Length - 1) throw new Exception("ȡ�Ӵ�λ����Ч."); if (Count < 0) throw new Exception("�Ӵ�����С����."); int left = Length - StartIndex;//ȡ�Ӵ���� Count = (left < Count) ? left : Count;//�Ӵ�ʵ�ʳ��� SeqString str = new SeqString(Count); for (int i = 0; i < Count; i++) str.CStr[i] = CStr[i + StartIndex]; return str; }
/// <summary> /// ��ָ��λ�ò����Ӵ� /// </summary> /// <param name="StartIndex">�����λ��</param> /// <param name="S">������Ӵ�</param> /// <returns>���봮��õ����´�</returns> public IString Insert(int StartIndex, IString S) { if (S == null) throw new Exception("�����ַ���Ϊnull."); if (StartIndex < 0 || StartIndex > Length) throw new Exception("����λ����Ч."); SeqString str = new SeqString(S.Length + Length); for (int i = 0; i < StartIndex; i++) str.CStr[i] = CStr[i];//ע��str[i]ֱ��ʹ���Ǵ���� for (int i = 0; i < S.Length; i++) str.CStr[i + StartIndex] = S[i]; for (int i = StartIndex; i < Length; i++) str.CStr[i + S.Length] = CStr[i]; return str; }
/// <summary> /// ��ָ��λ���Ƴ��Ӵ� /// </summary> /// <param name="StartIndex">�Ƴ���λ��</param> /// <param name="Count">�Ƴ��ij���</param> /// <returns>�Ƴ���õ����´�</returns> public IString Remove(int StartIndex, int Count) { if (StartIndex < 0 || StartIndex > Length - 1) throw new Exception("�Ƴ�λ����Ч."); if (Count < 0) throw new Exception("�Ƴ��ַ�����С����."); int left = Length - StartIndex;//����Ƴ��ַ����� Count = (left < Count) ? left : Count;//ʵ���Ƴ��ַ����� SeqString str = new SeqString(Length - Count); for (int i = 0; i < StartIndex; i++) str.CStr[i] = CStr[i]; for (int i = StartIndex + Count; i < Length; i++) str.CStr[i - Count] = CStr[i]; return str; }
/// <summary> /// ��ǰ���Ŀ��� /// </summary> /// <returns>��ǰ���Ŀ���</returns> public IString Clone() { SeqString str = new SeqString(Length); for (int i = 0; i < Length; i++) str.CStr[i] = CStr[i]; return str; }