gpt4 book ai didi

java - 挂信计划

转载 作者:行者123 更新时间:2023-12-01 14:28:00 25 4
gpt4 key购买 nike

这几天在练习JAVA的题,遇到了这样一道题:

I/p: I Am A Good Boy

O/p:

I A A G B
m o o
o y
d

这是我的代码。

System.out.print("Enter sentence: ");
String s = sc.nextLine();
s+=" ";
String s1="";
for(int i=0;i<s.length();i++)
{
char c = s.charAt(i);
if(c!=32)
{s1+=c;}
else
{
for(int j=0;j<s1.length();j++)
{System.out.println(s1.charAt(j));}
s1="";
}
}

问题是我无法进行此设计。我的输出是每行中的每个字符。

最佳答案

首先,你需要用空格作为分隔符来划分你的字符串,并将它们存储在一个字符串数组中,你可以通过编写自己的代码将一个字符串划分为多个字符串来实现,或者你可以使用一个名为拆分()

在将字符串“拆分”为字符串数组后,只需遍历字符串数组的次数与最长字符串出现的次数一样多,因为这是您要打印的最后一行(从共享输出中可以理解) 即 d 来自字符串 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

关于java - 挂信计划,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/57838634/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com