标签: substring

如何在iOS上将字符串拆分为子字符串?

NSString从服务器收到了一个.现在我想把它拆分成我需要的子串.如何拆分字符串?

例如:

substring1:从第二个字符读取到第5个字符

substring2:从第6个字符读取10个字符.

string iphone substring objective-c ios

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

81
推荐指数
5
解决办法
21万
查看次数

用另一个子串C++替换substring

我怎么能用C++中的另一个子字符串替换字符串中的子字符串,我可以使用哪些函数?

eg: string test = "abc def abc def";
test.replace("abc", "hij").replace("def", "klm"); //replace occurrence of abc and def with other substring
Run Code Online (Sandbox Code Playgroud)

c++ string replace substring

79
推荐指数
8
解决办法
14万
查看次数

如何在Oracle SQL中选择一个特定字符的子字符串?

假设我有一个表列,其结果如下:

ABC_blahblahblah
DEFGH_moreblahblahblah
IJKLMNOP_moremoremoremore
Run Code Online (Sandbox Code Playgroud)

我希望能够编写一个从所述表中选择此列的查询,但只返回子字符串直到Underscore(_)字符.例如:

ABC
DEFGH
IJKLMNOP
Run Code Online (Sandbox Code Playgroud)

SUBSTRING函数似乎不适合任务,因为它是基于位置的,并且下划线的位置不同.

我想到了TRIM功能(特别是RTRIM功能):

SELECT RTRIM('listofchars' FROM somecolumn) 
FROM sometable
Run Code Online (Sandbox Code Playgroud)

但是我不确定我是如何让它工作的,因为它似乎只删除了某个列表/一组字符,而我实际上只是在导致Underscore字符的字符之后.

sql oracle substring trim

77
推荐指数
4
解决办法
51万
查看次数

Java的子串()的时间复杂度

String#substring()Java中方法的时间复杂度是多少?

java substring time-complexity

77
推荐指数
4
解决办法
5万
查看次数

Python是否有更简洁的方式表达"如果x包含| b | c | d ......"?

检查字符串x是否为子串的Pythonic方法y是:

if x in y:
Run Code Online (Sandbox Code Playgroud)

如果找到x就相当于a,b,c,d,e,fg也是Python的:

if x in [a,b,c,d,e,f,g]:
Run Code Online (Sandbox Code Playgroud)

但是,如果检查一些字符串x包含两种a,b,c,d,e,fg看起来笨重:

if a in x or b in x or c in x or d in x or e in x or f in x or g in x
Run Code Online (Sandbox Code Playgroud)

是否有更多Pythonic方法检查字符串是否x包含列表元素? …

python if-statement substring python-3.x

73
推荐指数
3
解决办法
1万
查看次数

Go测试字符串包含子字符串

如何检查字符串是否是Go中另一个字符串的子字符串?例如,我想检查一下someString.contains("something").

substring go

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

String.Substring()似乎是这个代码的瓶颈

介绍

我有一个我最喜欢的算法,我在很久以前就已经制作了这种算法,我总是用新的编程语言,平台等作为某种基准来编写和重写.虽然我的主要编程语言是C#,但我只是简单地复制粘贴代码并稍微改变了语法,用Java构建它并发现它运行速度提高了1000倍.

代码

有相当多的代码,但我只是提出这个似乎是主要问题的代码片段:

for (int i = 0; i <= s1.Length; i++) 
{
    for (int j = i + 1; j <= s1.Length - i; j++)
    {
        string _s1 = s1.Substring(i, j);
        if (tree.hasLeaf(_s1))
         ...
Run Code Online (Sandbox Code Playgroud)

数据

重要的是要指出此特定测试中的字符串s1的长度为1百万字符(1MB).

测量

我在Visual Studio中描述了我的代码执行,因为我认为构建树的方式或者我遍历它的方式并不是最佳的.在检查结果后,看起来该线路string _s1 = s1.Substring(i, j);可以容纳超过90%的执行时间!

补充意见

我注意到的另一个不同之处在于,尽管我的代码是单线程的,Java使用所有8个内核(100%CPU利用率)来管理它,而即使使用Parallel.For()和多线程技术,我的C#代码也设法使用35-最多40%.由于算法与核心数(和频率)成线性比例,我已经对此进行了补偿,但Java中的片段仍然执行速度快100-1000倍.

推理

我认为发生这种情况的原因与C#中的字符串是不可变的这一事实有关,因此String.Substring()必须创建一个副本,因为它在嵌套的for循环中有很多次迭代我假设有很多复制和垃圾收集正在进行,但是,我不知道如何在Java中实现Substring.

此时我有什么选择?子串的数量和长度没有办法(这已经最大化了).是否有一种我不知道的方法(或许可能是数据结构)可以为我解决这个问题?

请求最小化实施(来自评论)

我遗漏了后缀树的实现,它在构造中是O(n),在遍历中是O(log(n))

public static double compute(string s1, string s2)
{
    double score = 0.00;
    suffixTree stree = new suffixTree(s2);
    for (int i = 0; i <= s1.Length; …
Run Code Online (Sandbox Code Playgroud)

c# performance substring

73
推荐指数
1
解决办法
5127
查看次数

从批处理文件输入中删除尾随斜杠

我有一个我想改进的批处理文件.如果在末尾有斜杠,我可以轻松地从路径中删除最后一个字符,而不是要求用户提供没有尾部斜杠的文件夹路径吗?

:START
@echo What folder do you want to process? (Provide a path without a closing backslash)
set /p datapath=

::Is string empty?
IF X%datapath% == X GOTO:START

::Does string have a trailing slash?
IF %datapath:~-1%==\ GOTO:START
Run Code Online (Sandbox Code Playgroud)

substring batch-file

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

为什么子串切片索引超出范围在Python中有效?

为什么不'example'[999:9999]导致错误?既然'example'[9]做,什么是其背后的动机是什么?

从这种行为我可以假设'example'[3],基本上/内部,不一样'example'[3:4],即使两者都产生相同的'm'字符串.

python string substring

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