我一直在试图弄清楚我是否可以使用其他类型的数据结构来解决这个问题。我设法以某种方式解决了它,但仍然缺乏很多高质量的代码。
前几天我在一次采访中被问到:给定一个输入字符串,例如:
String[] inputString = { "a1", "a2", "a3", "a4", "a5", "b1", "b2", "b3", "b4", "b5"};
将其转换为输出字符串:
String[] outputString = { "a1", "b1", "a2", "b2", "a3", "b3", "a4", "b4", "a5", "b5" };
我尝试了以下方法,到目前为止,我觉得这需要一些改进:
public class ArrayApp {
public static void main(String[] args) {
String[] inputString = { "a1", "a2", "a3", "a4", "a5", "b1", "b2",
"b3", "b4", "b5" };
// String[] outputString = { "a1", "b1", "a2", "b2", "a3", "b3", "a4",
// "b4", "a5", "b5" };
String[] str1 = new String[5];
System.arraycopy(inputString, 0, str1, 0, 5);
System.out.println("String Array str1");
for (int i = 0; i < str1.length; i++) {
System.out.print(str1[i]);
}
System.out.println();
String[] str2 = new String[5];
System.arraycopy(inputString, 5, str2, 0, 5);
// System.out.println(str2.length);
System.out.println("String Array str2");
for (int i = 0; i < str2.length; i++) {
System.out.print(str2[i]);
}
String temp = "";
int i = 0, j = 0;
for (i = 0; i < str1.length; i++) {
temp = temp + str1[i];
for (j = i; j < str2.length; j++) {
if (j > i) {
break;
}
temp = temp + str2[j];
}
}
System.out.println("\nFinal String " + temp);
System.out.println();
} // end main()
} // end class ArrayApp
问题是 - 这可以通过使用集合来改进吗?我尝试迭代集合,但这对我不起作用。我需要在这里使用任何其他集合类吗?
谢谢你的时间。
顺便说一句,这里是 O/P
字符串数组 str1 a1a2a3a4a5 字符串数组 str2 b1b2b3b4b5 最终字符串 a1b1a2b2a3b3a4b4a5b5