1 回答
TA贡献1963条经验 获得超6个赞
首先,您需要用空格作为分隔符来划分字符串并将它们存储在字符串数组中,您可以通过编写自己的代码将一个字符串划分为多个字符串来完成此操作,或者您可以使用名为的内置函数split()
将字符串“拆分”为字符串数组后,只需迭代字符串数组,次数与最长字符串出现的次数相同,因为这是您要打印的最后一行(从共享输出中可以理解),即,d来自 string Good,因此迭代字符串数组,直到打印最大/最长字符串中的最后一个字符,然后从那里退出。
您需要在迭代字符串数组时处理任何边缘情况,例如没有任何额外字符可供打印的字符串,但需要为下一个具有输出顺序字符的字符串打印空格。
以下是您可以参考的代码段,但请记住在进一步阅读之前尝试上面解释的逻辑,
import java.io.*;
import java.util.*;
public class MyClass {
public static void main(String args[]) throws IOException{
//BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
Scanner sc = new Scanner(System.in);
String[] s = sc.nextLine().split(" ");
// Split is a String function that uses regular function to split a string,
// apparently you can strings like a space given above, the regular expression
// for space is \\s or \\s+ for multiple spaces
int max = 0;
for(int i=0;i<s.length;i++) max = Math.max(max,s[i].length()); // Finds the string having maximum length
int count = 0;
while(count<max){ // iterate till the longest string exhausts
for(int i=0;i<s.length;i++){
if(count<s[i].length()) System.out.print(s[i].charAt(count)+" "); // exists print the character
else System.out.print(" "); // Two spaces otherwise
}
System.out.println();count++;
}
}
}
编辑:我正在分享下面的字符串输出This is a test Input
T i a t I
h s e n
i s p
s t u
t
添加回答
举报