[英]How can I store substrings generated from a String into a String array?
我正在編寫的程序是從給定的字符串(包括單詞本身)生成每個可能的子字符串,並將其存儲到String
數組中
這是我的代碼:
String word = "WOMAN";
String[] res = new String[20];
String sub;
int i, j, k;
int len = word.length();
for(i = 0; i < len; i++)
{
for(j = 0; j <= len-i; j++)
{
sub = word.substring(i, i+j);
for(k = 0; k < res.length; k++)
res[k] = sub;
}
}
我收到一個錯誤消息- error: incompatible types: String[] cannot be converted to String
。 我究竟做錯了什么?! 我想將每個子字符串存儲為res數組中的一個元素。
我變化不大,也許需要一些幫助
String word = "WOMAN";
String[] res = new String[20];
String sub;
int i, j, k=0;
int len = word.length();
for(i = 0;i < len;i++)
{
for(j = 0;j <= len-i;j++,k++)
{
sub = word.substring(i, i+j);
//for(k = 0;k < res.length;k++)
res[k] = sub;
}
}
這樣嘗試
String word = "WOMAN";
String sub = "";
int len = word.length();
List list = new ArrayList();
for(int i = 0; i < len; i++)
{
for(int j = 1; j <=len-i; j++)
{
sub = word.substring(i, i+j);
list.add(sub);
}
}
System.out.println(list);
public static String[] getSubStrings(String string){
List<String> result = new ArrayList<String>();
int i, c, length;
length = string.length();
for( c = 0 ; c < length ; c++ )
{
for( i = 1 ; i <= length - c ; i++ )
{
result.add(string.substring(c, c+i));
}
}
return result.toArray(new String[result.size()]);
}
嘗試使用ArrayList代替array。 數組大小是固定的。 因此,如果子字符串的大小小於數組,則生成的子字符串有時會溢出,或者某些空間保持空白。 數組列表隨着大小的增加而動態增長。
使用數組列表,一個簡單的解決方案是:
公共類GenerateStrings {
/**
* Generate substrings of a given string and add them in an arraylist.
*/
public static void main(String[] args) {
ArrayList<String> aList=new ArrayList<String>();
Scanner sc = new Scanner(System.in);
System.out.println("enter the string to split");
String string=sc.nextLine();
for(int i=0;i<string.length();i++){
for(int j=1;j<=string.length()-i;j++){
String subString=string.substring(i, i+j);
aList.add(subString);
}
}
System.out.println(aList);
}
}
希望對您有所幫助。
我將您的代碼簡化為這一代碼。 這可能會有所幫助。
String str = "WOMAN";
List<String> tempArr = new ArrayList<String>();
for (int i = 1; i < str.length(); i++) {
for (int j = i; j <= str.length(); j++) {
tempArr.add(str.substring(i - 1, j));
}
}
String[] res = tempArr.toArray(new String[tempArr.size()]);
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.