本文整理汇总了C#中MutableString.IndexOf方法的典型用法代码示例。如果您正苦于以下问题:C# MutableString.IndexOf方法的具体用法?C# MutableString.IndexOf怎么用?C# MutableString.IndexOf使用的例子?那么恭喜您, 这里精选的方法代码示例或许可以为您提供帮助。您也可以进一步了解该方法所在类MutableString
的用法示例。
在下文中一共展示了MutableString.IndexOf方法的14个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的C#代码示例。
示例1: IndexOf
// The IndexOf and InternalSplit helper methods are necessary because Ruby semantics of these methods
// differ from .NET semantics. IndexOf("") returns the next character, which is reflected in the
// InternalSplit method which also flows taint
private static int IndexOf(MutableString/*!*/ str, MutableString/*!*/ separator, int index) {
if (separator.Length > 0)
return str.IndexOf(separator, index);
else
return index + 1;
}
示例2: RemoveSubstringInPlace
public static MutableString RemoveSubstringInPlace(MutableString/*!*/ self, [NotNull]MutableString/*!*/ searchStr) {
if (searchStr.IsEmpty) {
return searchStr.Clone();
}
int index = self.IndexOf(searchStr);
if (index < 0) {
return null;
}
RemoveSubstringInPlace(self, index, searchStr.Length);
return searchStr.Clone();
}
示例3: Include
public static bool Include(MutableString/*!*/ str, [DefaultProtocol, NotNull]MutableString/*!*/ subString) {
return str.IndexOf(subString) != -1;
}
示例4: Index
public static object Index(MutableString/*!*/ self,
[DefaultProtocol, NotNull]MutableString/*!*/ substring, [DefaultProtocol, Optional]int start) {
if (!NormalizeStart(self, ref start)) {
return null;
}
int result = self.IndexOf(substring, start);
return (result != -1) ? ScriptingRuntimeHelpers.Int32ToObject(result) : null;
}
示例5: GetSubstring
public static MutableString GetSubstring(MutableString/*!*/ self, [NotNull]MutableString/*!*/ searchStr) {
return (self.IndexOf(searchStr) != -1) ? searchStr.Clone() : null;
}
示例6: ReadLine
private static MutableString ReadLine(MutableString/*!*/ content, MutableString separator, ref int position) {
int length = content.GetByteCount();
if (position >= length) {
return null;
}
int oldPosition = position;
if (separator == null) {
position = length;
} else if (separator.IsEmpty) {
// skip initial ends of line:
while (oldPosition < length && content.GetByte(oldPosition) == '\n') {
oldPosition++;
}
position = content.IndexOf(ParagraphSeparator, oldPosition);
position = (position != -1) ? position + 1 : length;
} else {
position = content.IndexOf(separator, oldPosition);
position = (position != -1) ? position + separator.Length : length;
}
return content.GetSlice(oldPosition, position - oldPosition);
}
示例7: Index
public static object Index(MutableString/*!*/ self,
[DefaultProtocol, NotNull]MutableString/*!*/ substring, [DefaultProtocol, Optional]int start) {
self.SwitchToCharacters();
if (!NormalizeStart(self.GetCharCount(), ref start)) {
return null;
}
self.RequireCompatibleEncoding(substring);
substring.SwitchToCharacters();
int result = self.IndexOf(substring, start);
return (result != -1) ? ScriptingRuntimeHelpers.Int32ToObject(result) : null;
}
示例8: IsBinaryData
public static object IsBinaryData(UnaryOpStorage/*!*/ isEmptyStorage, RubyContext/*!*/ context, MutableString/*!*/ self) {
var site = isEmptyStorage.GetCallSite("empty?");
if (RubyOps.IsTrue(site.Target(site, context, self))) {
return null;
}
return ScriptingRuntimeHelpers.BooleanToObject((self.IsBinary ? self.IndexOf(0) : self.IndexOf('\0')) >= 0);
}
示例9: InternalSplit
private static RubyArray/*!*/ InternalSplit(MutableString/*!*/ str, MutableString separator, int limit) {
RubyArray result;
if (limit == 1) {
// returns an array with original string
result = new RubyArray(1);
result.Add(str);
return result;
}
if (separator == null || separator.StartsWith(' ') && separator.GetLength() == 1) {
return WhitespaceSplit(str, limit);
}
if (separator.IsEmpty) {
return CharacterSplit(str, limit);
}
if (limit <= 0) {
result = new RubyArray();
} else {
result = new RubyArray(limit + 1);
}
// TODO: invalid characters, k-coding?
str.PrepareForCharacterRead();
separator.PrepareForCharacterRead();
str.RequireCompatibleEncoding(separator);
int separatorLength = separator.GetCharCount();
int i = 0;
int next;
while ((limit <= 0 || result.Count < limit - 1) && (next = str.IndexOf(separator, i)) != -1) {
result.Add(str.CreateInstance().Append(str, i, next - i).TaintBy(str));
i = next + separatorLength;
}
result.Add(str.CreateInstance().Append(str, i).TaintBy(str));
if (limit == 0) {
RemoveTrailingEmptyItems(result);
}
return result;
}
示例10: Include
public static bool Include(MutableString/*!*/ str, [DefaultProtocol, NotNull]MutableString/*!*/ subString) {
str.RequireCompatibleEncoding(subString);
str.PrepareForCharacterRead();
subString.PrepareForCharacterRead();
return str.IndexOf(subString) != -1;
}
示例11: GetSubstring
public static MutableString GetSubstring(MutableString/*!*/ self, [NotNull]MutableString/*!*/ searchStr) {
if (self.IndexOf(searchStr) != -1) {
return searchStr.Clone();
} else {
return null;
}
}
示例12: IsBinaryData
public static object IsBinaryData(RubyContext/*!*/ context, MutableString/*!*/ self) {
if (RubyOps.IsTrue(_Empty.Target(_Empty, context, self))) {
return null;
}
// TODO: should be self.IndexOf(0)?
return self.IndexOf('\0') != -1;
}
示例13: ReplaceSubstring
public static MutableString ReplaceSubstring(MutableString/*!*/ self,
[NotNull]MutableString/*!*/ substring, [DefaultProtocol, NotNull]MutableString/*!*/ value) {
int index = self.IndexOf(substring);
if (index == -1) {
throw RubyExceptions.CreateIndexError("string not matched");
}
return ReplaceSubstring(self, index, substring.Length, value);
}
示例14: SkipToUnescapedForwardSlash
private static int SkipToUnescapedForwardSlash(MutableString/*!*/ pattern, int i) {
while (i < pattern.Length) {
i = pattern.IndexOf('/', i);
if (i <= 0) {
return i;
}
if (pattern.GetChar(i - 1) != '\\') {
return i;
}
i++;
}
return -1;
}