标签: indexof

奇怪的string.IndexOf行为

我编写了以下代码片段来消除文本块中的过多空格

int index = text.IndexOf("  ");
while (index > 0)
{
    text = text.Replace("  ", " ");
    index = text.IndexOf("  ");
}
Run Code Online (Sandbox Code Playgroud)

一般来说,这种方法很好,虽然相当原始,可能效率低下.

问题

当文本包含" - "的某些bizzare原因时indexOf返回一个匹配!替换功能不会删除任何东西,然后它会卡在无限循环中.

有关string.IndexOf的任何想法吗?

c# indexof infinite-loop

5
推荐指数
1
解决办法
4010
查看次数

为什么字符串IndexOf()表示不敏感?

我真的被这个难倒了.我正在学习LINQ并使用Microsoft Visual C#Express Edition连接到包含有关我的书籍信息的SQL Server数据库.我根据需要创建了LINQ to SQL类.那东西显然有效.这一切都有效,除了我无法弄清楚为什么,如果我搜索"SR"(大写),它会找到两个记录,"SR-71 Revealed,The Inside Story",如预期的那样,但它也发现"褪色太阳:Kesrith"其中"sr"是小写的.我正在使用字符串类的IndexOf()方法,它应该执行case-SENSITIVE比较,对吧?输出显示第二个书名,如上所示,"sr"为小写.这是代码的相关部分:

// normal using directives here
namespace QueryBooksDB {
    class Program {
        static void Main() {
            var urgh = new BooksDataContext();

            Console.WriteLine("Enter a string to search for:");
            string str = Console.ReadLine();

            var list = from book in urgh.Books
                        where book.Title.IndexOf(str) > -1
                        orderby book.Title
                        select new { ID = book.BookId, book.Title, book.Location };

            foreach ( var b in list ) {
                Console.WriteLine(b.Title);
            }
        }
    }
}
Run Code Online (Sandbox Code Playgroud)

c# linq string indexof linq-to-sql

5
推荐指数
1
解决办法
4847
查看次数

Java - 如何在字符串中搜索6个随机数

我的应用程序中有一个(大)字符串文件,其中包含一系列随机字符[aZ]和[0-9]以及";","/","?",":"和"@".我希望我的申请告诉我连续显示6位数的最近位置(如"105487"或"558463").

实现这一目标的最佳方法是什么?感谢您对此进行调查.

java string digits indexof

5
推荐指数
1
解决办法
187
查看次数

IndexOf ComboBox对我不起作用

VB2010.我正在尝试使用Enumeration单位的内容填充ComboBox.我已经设法用字典做了这个.就像是

Dim dUnits As New Dictionary(Of String, Integer)
Dim da As String

For Each enumValue As eUnits In System.Enum.GetValues(GetType(eUnits))
   da = ConvertEnumToCommonName 'gets unique name for an enumeration
   dUnits.Add(da, enumValue)
Next

cbo.DisplayMember = "Key"   'display the the common name
cbo.ValueMember = "Value"   'use the enumeration as the value
cbo.DataSource = New BindingSource(dUnits, Nothing)
Run Code Online (Sandbox Code Playgroud)

当我加载我的表格运作良好.现在,用户可以选择要显示的默认单位.那么我试试吧

Dim defUnits As eUnits = eUnits.Feet
Dim idx As Integer = cbo.Items.IndexOf(defUnits) 'doesnt work, returns a -1
cbo.SelectedIndex = idx
Run Code Online (Sandbox Code Playgroud)

我已经做了一段时间的研究,并且相当肯定这与ComboBox将值存储为字符串有关,实际上我正在搜索一个整数的枚举.不知道我是否有这个权利.无论如何,我似乎无法选择默认项目.我可以尝试另一种方法吗?

vb.net combobox dictionary enumeration indexof

5
推荐指数
1
解决办法
1903
查看次数

如何测试字符串是否是另一个字符串的最后一个"部分"?

var longString = "this string is long but why"
var shortString = "but why"
Run Code Online (Sandbox Code Playgroud)

我如何测试shortString是否不仅包含在longString中,而且它实际上是字符串的最后一部分.

我曾经indexOf == 0测试过字符串的开头但不知道如何结束它

javascript regex string indexof

5
推荐指数
1
解决办法
49
查看次数

JavaScript:String和Array上indexOf方法的效率差异

我很好奇是否存在indexOf可用于JavaScript ArrayStringJavaScript 的方法的效率差异.我认为indexOfString上的效率低于Array,我的测试结果支持这一点.例如:

var arr = ['abc', 'ab', 'abz', '1'];

var str = 'abcababz1';

var needle = 'abxx';

//concatenate to make them bigger
for (var i = 0; i < 30; i++) {
    arr = arr.concat(arr);
    str = str.concat(str);
}
arr.push(needle);  //append needle last
str = str.concat(needle);
Run Code Online (Sandbox Code Playgroud)

然后我用了开始和结束时间戳

arr.indexOf(needle); // faster!
str.indexOf(needle); 
Run Code Online (Sandbox Code Playgroud)

我在节点中做了这个测试,新的测试结果显示:

time used on Array is: 35
time used on String is: 57
Run Code Online (Sandbox Code Playgroud)

因此,Array对indexOf比String更有效.这个新的测试基本上创造了最坏的情况 - 针在String或Array的最后.

编辑:

如果indexOf …

javascript arrays string substring indexof

5
推荐指数
1
解决办法
2102
查看次数

具有多个值的Javascript indexOf方法

我有一个array包含多个相同值的数据

["test234", "test9495", "test234", "test93992", "test234"]
Run Code Online (Sandbox Code Playgroud)

在这里,我想得到test234数组中每个的索引

为此,我尝试了Array.prototype.indexOf()方法.但它只会让我0回归,但我希望它能归还给我[0, 2, 4].

我怎样才能做到这一点?

var array = ["test234", "test9495", "test234", "test93992", "test234"];
document.write(array.indexOf("test234"));
Run Code Online (Sandbox Code Playgroud)

javascript arrays indexof

5
推荐指数
3
解决办法
2万
查看次数

Array.indexOf不敏感的数据类型

我一直Array.indexOf在谷歌C​​hrome控制台中使用,我尝试了这些代码

[1,2,3].indexOf(3);
[1,2,"3"].indexOf("3");
Run Code Online (Sandbox Code Playgroud)

他们都返回了2,但是当我尝试这些代码时

[1,2,"3"].indexOf(3);
[1,2,3].indexOf("3");
Run Code Online (Sandbox Code Playgroud)

他们都返回-1.我想要它也返回2,我怎么能这样做?感谢您的帮助,时间和精力!

javascript types indexof

5
推荐指数
2
解决办法
768
查看次数

何时在javaScript中使用set

我只是javaScript的初学者,拥有python的背景.我正在尝试这个练习来检查string2的每个字符是否都包含在string1中.例如,如果STRING1是"你好",我会回来true,如果字符串2是"列城"的false,如果字符串2为"低".

我提出的是这个:

function mutation(arr) {
  var set = new Set(string1.split(''));
  for (var i = 0; i < string2.length; i++)
    if (!set.has(string2[i]))
      return false;
  return true;
}
Run Code Online (Sandbox Code Playgroud)

我还可以去转换字符串2为一组,然后就采取即操作的差异set(string2) - set(string1),这将取我的一组是包含字符串,但不是在字符串1个字符,但我读创建一组是昂贵的,所以我没有去先.

我检查了其他解决方案,每个人都在使用string1.indexOf(letter)方法来检查string2中的每个字母是否都在string1中.

我想知道什么时候应该使用一组差异.为什么每个人都在使用array.indexOf()花费O(n)而不是set.has()O(1)的方法的方法.如果我正在使用,是否有任何陷阱set.has().(说浏览器兼容性)?

任何建议都有帮助.

javascript arrays set indexof

5
推荐指数
1
解决办法
1382
查看次数

Swift 5:字符串中的字符索引

在Swift 5之前,我已经使用了该扩展程序:

  fileprivate extension String {
        func indexOf(char: Character) -> Int? {
            return firstIndex(of: char)?.encodedOffset
        }
    }
Run Code Online (Sandbox Code Playgroud)

现在,我收到了不赞成使用的消息:

'encodedOffset' is deprecated: encodedOffset has been deprecated as most common usage is incorrect. Use `utf16Offset(in:)` to achieve the same behavior.
Run Code Online (Sandbox Code Playgroud)

有没有一个更简单的解决方案,而不是使用 utf16Offset(in:)

我只需要作为Int传递回的字符位置的索引。

string indexof swift swift5

5
推荐指数
1
解决办法
2830
查看次数