java string查找子串

编程入门 行业动态 更新时间:2024-10-18 01:33:56

<a href=https://www.elefans.com/category/jswz/34/1770091.html style=java string查找子串"/>

java string查找子串

参见英文答案 > Memory efficient power set algorithm                                    5个

我试图在Java中找到每个可能的字符串字符串 – 我的意思是,如果我有一个4个字符长的单词,我想要从它派生的所有可能的3个字符长单词,所有2个字符长,所有1性格长.我最直接的方法是在字符串上使用两个嵌套的for循环和iterare.这是我现在的代码:

private ArrayList subsets(String word){

ArrayList s = new ArrayList();

int length = word.length();

for (int c=0; c

for (int i=0; i

String sub = word.substring(c, c+i+1);

System.out.println(sub);

//if (!s.contains(sub) && sub!=null)

s.add(sub);

}

}

//java.util.Collections.sort(s, new MyComparator());

//System.out.println(s.toString());

return s;

}

我的问题是它适用于3个字母的单词,有趣的是这个结果(不介意排序,单词被处理,以便我有一个字母顺序排列的字符串):

f

fn

fnu

n

nu

u

但是当我尝试4个字母的单词时,它会留下一些东西,就像catq给我的那样:

a

ac

acq

acqt

c

cq

cqt

q

qt

t

也就是说,我没有看到3个字符的长字行为 – 这是我在测试这种方法时所寻找的那个.我无法理解问题所在,而且这很可能是我在创建子串时所犯的逻辑错误.如果有人可以帮助我,请不要给我代码,而是给你解决方案背后的原因.这是一个课程作业,我需要自己提出代码.

编辑:清除一些东西,对我来说,acq,qca,caq,aqc,cqa,qac等都是一回事 – 为了使它更清晰,会发生的是字符串按字母顺序排序,所以这些排列应该是一个独特的结果,acq.所以,我不需要字符串的所有排列,而是给定一个4个字符长的字符串,我可以从中得到所有3个字符长的字符串 – 这意味着一次取出一个字符并返回该字符串结果,为原始字符串中的每个字符执行此操作.

我希望我的问题更加清晰

解决方法:

它工作正常,你在测试/输入中拼错了“caqt”作为“acqt”.

(问题可能在于您正在对输入进行排序.如果您想要substrings,则必须保持输入未排序.)

标签:java,substring,arraylist,for-loop,string

来源: .html

更多推荐

java string查找子串

本文发布于:2024-02-25 14:18:35,感谢您对本站的认可!
本文链接:https://www.elefans.com/category/jswz/34/1699255.html
版权声明:本站内容均来自互联网,仅供演示用,请勿用于商业和其他非法用途。如果侵犯了您的权益请与我们联系,我们将在24小时内删除。
本文标签:java   string

发布评论

评论列表 (有 0 条评论)
草根站长

>www.elefans.com

编程频道|电子爱好者 - 技术资讯及电子产品介绍!