标签: substring

charAt()或子串?哪个更快?

我想遍历String中的每个字符,并将String的每个字符作为String传递给另一个函数.

String s = "abcdefg";
for(int i = 0; i < s.length(); i++){
    newFunction(s.substring(i, i+1));}
Run Code Online (Sandbox Code Playgroud)

要么

String s = "abcdefg";
for(int i = 0; i < s.length(); i++){
    newFunction(Character.toString(s.charAt(i)));}
Run Code Online (Sandbox Code Playgroud)

最终结果必须是String.那么任何更快或更高效的想法?

java string performance substring character

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

使用sed从字符串中删除子字符串

我试图使用sed从变量中删除子字符串,如下所示:

PRINT_THIS="`echo "$fullpath" | sed 's/${rootpath}//' -`"
Run Code Online (Sandbox Code Playgroud)

哪里

fullpath="/media/some path/dir/helloworld/src"
rootpath=/media/some path/dir
Run Code Online (Sandbox Code Playgroud)

我想像这样回应其余的完整路径(我在整堆目录中使用它,所以我需要将它存储在变量中并自动执行

echo "helloworld/src"
Run Code Online (Sandbox Code Playgroud)

使用变量就可以了

echo "Directory: $PRINT_THIS"
Run Code Online (Sandbox Code Playgroud)

问题是,我无法获取sed删除子字符串,我做错了什么?谢谢

bash substring sed

11
推荐指数
2
解决办法
4万
查看次数

如何在SQL Server中提取此特定子字符串?

我有一个具有特定模式的字符串:

23;chair,red [$3]
Run Code Online (Sandbox Code Playgroud)

即,一个数字后跟一个分号,然后是一个名称,后跟一个左方括号.

假设分号;始终存在且左方括号[始终存在于字符串中,如何在SQL Server查询中(和不包括);[SQL Server查询之间提取文本?谢谢.

sql-server substring

11
推荐指数
2
解决办法
10万
查看次数

如何使用正则表达式模式在括号中提取子字符串

这可能是一个简单的问题,但不幸的是我无法得到我想要的结果......

说,我有以下几行:

"Wouldn't It Be Nice" (B. Wilson/Asher/Love)
Run Code Online (Sandbox Code Playgroud)

我必须寻找这种模式:

" (<any string>)
Run Code Online (Sandbox Code Playgroud)

为了检索:

B. Wilson/Asher/Love
Run Code Online (Sandbox Code Playgroud)

我尝试了类似的东西,"" (([^))]*))但似乎没有用.另外,我想使用Match.Submatches(0)这样可能会使事情复杂化,因为它依赖括号......

regex vba substring

11
推荐指数
1
解决办法
4万
查看次数

查找数组中每个字符串的最小唯一子字符串

(我在JavaScript的上下文中写这个,但是会接受任何语言的算法正确答案)

如何在字符串数组中找到每个元素的最短子字符串,其中子字符串不包含在任何其他元素中,忽略大小写?

假设我有一个输入数组,例如:

var names = ["Anne", "Anthony", "LouAnn", "Kant", "Louise", "ark"];
Run Code Online (Sandbox Code Playgroud)

输出应该是这样的:

var uniqueNames = ["ne", "h", "ua", "ka", "i", "r"];
Run Code Online (Sandbox Code Playgroud)

出于我的目的,您可以安全地假设没有元素将完全包含在另一个元素中.

我的想法:
似乎人们可能会蛮力这样做,其方式如下:

var names = ["Anne", "Anthony", "LouAnn", "Kant", "Louise", "ark"];
var uniqueNames = [], nameInd, windowSize, substrInd, substr, otherNameInd, foundMatch;
// For each name
for (nameInd = 0; nameInd < names.length; nameInd++)
{
    var name = names[nameInd];
    // For each possible substring length
    windowLoop:
    for (windowSize = 1; windowSize <= name.length; windowSize++)
    {
        // For each …
Run Code Online (Sandbox Code Playgroud)

arrays string algorithm substring unique

11
推荐指数
2
解决办法
3071
查看次数

python高效子字符串搜索

可能重复:
如何在CPython中实现string.find?

我在这里阅读了很多关于堆栈溢出的帖子比较子字符串搜索的性能(例如Python字符串搜索效率, 这是搜索子字符串的最有效方法吗?, python中的子字符串等等)

我还看了一下包含abstract.c的源代码实现.

据我所知,内置实现是迭代的:python docs

python是否有更多足够的技术来实现查找子字符串:Boyer-Moore算法, Rabin-Karp算法等...... ???

编辑

问题已经扩展: Python:通过嵌入复杂的算法改进子字符串搜索.

c python algorithm performance substring

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

Pascal substr等价物

我正在寻找一个Pascal等价物(例如)php的substr函数,它的工作原理如下:

$new_string = substr('abcdef', 1, 3);  // returns 'bcd'
Run Code Online (Sandbox Code Playgroud)

我已经找到了它,但我总是花费太长时间才这样做,所以我发布了像我这样的其他人的答案,以便能够轻松找到它.

pascal substring substr

11
推荐指数
1
解决办法
2万
查看次数

使用后缀树/数组的最长非重叠重复子串(仅限算法)

我需要在String中找到最长的非重叠重复子字符串.我有可用字符串的后缀树和后缀数组.

当允许重叠时,答案是微不足道的(后缀树中最深的父节点).

例如对于String ="acaca"

如果允许重叠,则回答是"aca"但是当不允许重叠时,回答是"ac"或"ca".

我只需要算法或高级想法.

PS:我试过,但我在网上找不到明确的答案.

algorithm substring suffix-tree suffix-array

11
推荐指数
1
解决办法
4447
查看次数

Knuth-Morris-Pratt算法中的DFA构造

我指的是Sedgewick的书"Algorithms"(第4版)中用于子串搜索的Knuth-Morris-Pratt(KMP)算法的概述.

KMP算法在子串搜索中使用基于确定性有限自动机(DFA)的备份.我了解DFA如何输入算法,但我不明白如何构建 DFA,这由以下代码片段完成:

dfa[pat.charAt(0)][0] = 1;
for (int X = 0; j = 1; j< M; j++) {
    for (int c = 0; c < R; c++) {
       dfa[c][j] = dfa[c][X];
    }
    dfa[pat.charAt(j)][j] = j+1;
    X = dfa[pat.charAt(j)][X];
}
Run Code Online (Sandbox Code Playgroud)

M模式的长度patR字母的大小在哪里.该charAt()函数返回相应位置的字符的整数值.

有人能解释这段代码构造dfa的方式吗?我迷失在内部for循环的实际直觉意义上.

string algorithm substring dfa knuth-morris-pratt

11
推荐指数
1
解决办法
4055
查看次数

C设置字符串等于substring

在C中,如果我有:

char *reg = "[R5]";
Run Code Online (Sandbox Code Playgroud)

而且我要

char *reg_alt = "R5" (相同的东西,但没有括号),我该怎么做?

我试过了

*char reg_alt = reg[1:2];
Run Code Online (Sandbox Code Playgroud)

但这不起作用.

c string substring

11
推荐指数
2
解决办法
1005
查看次数