特定の文字列のすべての部分文字列を作成するにはどうすればよいですList
か? ArrayList
たとえば、入力が「test」の場合、配列 = {"t", "e", "s", "t", "te", "es", "st", "tes", "est"、"test"}。
質問する
2850 次
3 に答える
1
ArrayList
動的であるため、使用する場合は、次のコードを試すことができます。
String input = "test";
String temp;
List<String> list = new ArrayList<String>();
for(int i=0;i<input.length();i++){
for(int j=1;j<=(input.length()-i);j++){
temp = input.substring(i,i+j);
list.add(temp);
}
}
for (String string : list) {
System.out.println(string);
}
それでも String の配列を使用したい場合は、次のようにすることができます。
String input = "test";
String temp;
String[] list = new String[10];
int k=0;
for(int i=0;i<input.length();i++){
for(int j=1;j<=(input.length()-i);j++){
temp = input.substring(i,i+j);
list[k++]=temp;
}
}
for (String string : list) {
System.out.println(string);
}
注: ArrayList は動的であるため、配列よりも ArrayList を使用することをお勧めします。
于 2013-03-12T07:07:44.867 に答える
1
これは、数値 "N" を指定して順列を生成するのと似ています。したがって、最初に文字列の長さを見つけ、反復して部分文字列を生成します
このようなもの-
Algorithm-
for i=0 to string.length
for j=1 to string.length-i
//Generate substrings here
他の人が示唆しているように、問題を解決するためにいくつかの試みをしてから、あなたの疑問を尋ねてください!
于 2013-03-12T07:09:17.623 に答える
0
これがあなたの問題に対する簡単な解決策です。
import java.util.ArrayList;
public class Substrings {
public static void main(String []args) {
ArrayList<String> substrings = Substrings.generateSubstrings("test");
for(String s : substrings)
System.out.println(s);
}
public static ArrayList<String> generateSubstrings(String str) {
//The total number of substrings of given string
int substringsCount = str.length() * (str.length() + 1) / 2;
ArrayList<String> substrings = new ArrayList<String>(substringsCount);
//generating all the substrings.
for(int i = 0;i < str.length();i++)
for(int j = i+1;j <= str.length();j++)
substrings.add(str.substring(i,j));
return substrings;
}
}
于 2013-03-12T11:52:08.530 に答える