如何确定字符串的最后一个字符,它将成为下一个字符串的第一个字符

时间:2017-06-18 13:04:01

标签: java arrays sorting

如何获取字符串的最后一个字母,它将成为下一个字符串的第一个字母。

我知道这与charAt()有关,但我不知道如何使用数组

假设我们有一个输入,就像这个x = {"rojan", "yohan", "jamir", "nancy", "nene", "neels"}

一样

输出将为jamir, rojan, nancy, yohan, nene

如果有其他字符/字母链接到前一个字符,程序将忽略该程序。

1 个答案:

答案 0 :(得分:0)

您可以使用arraylist来获取最终数据,但是在检查每个单词的最后一个字符之前必须检查第一个字符,这样您就不会错过任何数据。如果您只检查最后一个字符,那么< strong> rojan &gt;的南西&GT; yohan &gt; nene 。所以 jamir 不在序列中,因为我没有找到 r ,这是不现实的。所以这样做: -

import java.util.ArrayList;

public class NewClass1 {

public static void  main (String [] args){

String [] x= {"rojan", "yohan", "jamir", "nancy", "nene","neels"};/*your 
array*/

ArrayList<String> newarray = new <String>ArrayList();//resulting array


int j=0;
int i=1;
int check=1;//check 1 means its checking first character

for(;i<x.length-1;i++){//loop will stop at nene

while(newarray.contains(x[i])){//prevent reusing the same word
   i++;

}while(newarray.contains(x[j])){//prevent reusing the same word
j++;
}

if(check==1){

if(x[i].charAt(x[i].length()-1)==x[j].charAt(0)){//checking first character

newarray.add(x[i]);
newarray.add(x[j]);

 check=2;//setting to 2 after first character found

i=-1;//resetting loop after looking for char
}


}else
if(x[i].charAt(0)==x[j].charAt(x[j].length()-1)){//checking last character

newarray.add(x[i]);
j++;
check=1;//resetting to 1 after last character found
i=-1;
}

}
for(i =0 ;i<newarray.size();i++){//for printing the array
System.out.print(" "+newarray.get(i));
}
}
}

希望有所帮助。