有没有一种方法可以从java中的字符串返回子字符串? 例如,如果我有一个字符串:aadaa 它应该返回我:{a,a,d,a,a,aa,ad,aa,aad,ada,daa ..} 这是我的代码:
String substring(String str1)
{
//String sbs="";
int len=str1.length();
for (int i=0;i<len;i++)
{
for (int j=i+1;j<=len;j++)
{
return(str1.substring(i, j));
}
}
我需要return语句从此方法返回一个值,而不是将其打印出来。 请帮忙。
答案 0 :(得分:2)
要使用Java获取给定String
的所有子字符串,可以使用以下GetSubtrings
方法:
public static ArrayList<String> GetSubstrings(String str) {
// set up any substring and add it to the ArrayList
ArrayList<String> subStrings = new ArrayList();
for (int i = 0; i < str.length(); ++i) {
for (int j = 1; j <= str.length() - i; ++j) {
subStrings.add(str.substring(i, i + j));
}
}
return subStrings;
}
有关如何使用它的示例为:
// stores all substrings
ArrayList<String> subStrings = new ArrayList();
// call method to get all substrings
subStrings = GetSubstrings("Test");
这将返回一个包含以下内容的ArrayList:{“ T”,“ Te”,“ Tes”,“ Test”,“ e”,“ es”,“ est”,“ s”,“ st”,“ t “}
整个示例程序:
package com.company;
import java.util.ArrayList;
public class Main {
public static void main(String[] args) {
// stores all substrings
ArrayList<String> subStrings = new ArrayList();
// call method to get all substrings
subStrings = GetSubstrings("Test");
}
public static ArrayList<String> GetSubstrings(String str) {
// set up any substring and add it to the ArrayList
ArrayList<String> subStrings = new ArrayList();
for (int i = 0; i < str.length(); ++i) {
for (int j = 1; j <= str.length() - i; ++j) {
subStrings.add(str.substring(i, i + j));
}
}
return subStrings;
}
}
答案 1 :(得分:1)
作为 oRole 的答案,如果您不想重复的值,只需将List更改为HashSet。由于Java设置不包含重复的值。
public static HashSet<String> GetSubstrings(String str) {
// set up any substring and add it to the ArrayList
HashSet<String> subStrings = new HashSet();
for (int i = 0; i < str.length(); ++i) {
for (int j = 1; j <= str.length() - i; ++j) {
subStrings.add(str.substring(i, i + j));
}
}
return subStrings;
}