Java 操纵字符串以生成具有相应索引的新字符串
输入:进行一次自动编辑Java 操纵字符串以生成具有相应索引的新字符串,java,stringbuilder,Java,Stringbuilder,输入:进行一次自动编辑 String[]words=sb.toString().split(“//s”); StringBuilder sbFinal=新的StringBuilder(); 对于(int i=0;i使用简单的for循环和数组: public class SO { public static void main(String args[]) { String input = "have anic eday "; // Split the
String[]words=sb.toString().split(“//s”);
StringBuilder sbFinal=新的StringBuilder();
对于(int i=0;i使用简单的for
循环和数组:
public class SO {
public static void main(String args[]) {
String input = "have anic eday ";
// Split the input.
String[] words = input.split("\\s");
int numberOfWords = words.length;
int wordLength = words[0].length();
// Prepare the result;
String[] result = new String[wordLength];
// Loop over the new words.
for (int i = 0; i < wordLength; i++) {
// Loop over the characters in each new word.
for (int j = 0; j < numberOfWords; j++) {
// Initialize the new word, if necessary.
String word = result[i] != null ? result[i] : "";
// Append the next character to the new word.
String newChar = Character.toString(words[j].charAt(i));
result[i] = word + newChar;
}
}
for (String newWord : result) {
System.out.println(newWord);
}
}
}
对循环和数组使用简单的:
public class SO {
public static void main(String args[]) {
String input = "have anic eday ";
// Split the input.
String[] words = input.split("\\s");
int numberOfWords = words.length;
int wordLength = words[0].length();
// Prepare the result;
String[] result = new String[wordLength];
// Loop over the new words.
for (int i = 0; i < wordLength; i++) {
// Loop over the characters in each new word.
for (int j = 0; j < numberOfWords; j++) {
// Initialize the new word, if necessary.
String word = result[i] != null ? result[i] : "";
// Append the next character to the new word.
String newChar = Character.toString(words[j].charAt(i));
result[i] = word + newChar;
}
}
for (String newWord : result) {
System.out.println(newWord);
}
}
}
虽然有人回答,但我制作了一个与您最初设计的版本更为相似的版本,只是使用sysout而不是return,但根据您的需要进行更改,或者只调整.split()行:
String sb=“have anic eday”;
String[]words=sb.split(\\s);//您需要使用BACKWARDSLASH“\\s”使其工作。
StringBuilder sbFinal=新的StringBuilder();
for(int i=0;i
您可以使用“//s”进行拆分,但是“/”或“\\s”似乎工作得很好。虽然得到了回答,但我制作了一个与您最初设计的版本更为相似的版本,只是使用了sysout而不是return,但可以根据您的需要进行更改,或者只需调整.split()行:
String sb=“have anic eday”;
String[]words=sb.split(\\s);//您需要使用BACKWARDSLASH“\\s”使其工作。
StringBuilder sbFinal=新的StringBuilder();
for(int i=0;i
您可以使用“//s”进行拆分,但是“/”或“\\s”似乎可以很好地工作。因此,您有x个单词,每个单词都有y个字符。您是否总是希望生成y个单词,每个单词都有x个字符?生成这些单词的确切逻辑是什么?因此您基本上希望采用char[][]的转置
并将其连接到一个由单个空格字符分隔的字符串中?是的。这是我试图解决的加密问题的一部分。我将问题划分为模块,这是最后一部分。但我上面显示的输出是意外的。我的循环逻辑是否错误?是的,但我想使用stri查看问题ngbuilder@JacobG.所以你有x个单词,每个单词都有y个字符。你总是想用x个字符来构建y个单词吗?构建每个单词的确切逻辑是什么?所以你基本上想采用char[][]的转置
并将其连接到一个由单个空格字符分隔的字符串中?是的。这是我试图解决的加密问题的一部分。我将问题划分为模块,这是最后一部分。但我上面显示的输出是意外的。我的循环逻辑是否错误?是的,但我想使用stri查看问题ngbuilder@JacobG.非常感谢,但我一直在寻找我的代码中的错误。非常感谢,但我一直在寻找我的代码中的错误。错误是由于拆分(“//s”),非常感谢。我很高兴解决了这个问题。显然,现在人们只是投了反对票。但是先生,请继续帮助像我这样的初学者!(Y)@institute显然,sb.split(“);
和sb.split(\\s”);
应该给出相同的输出。是的,但是OP使用了forwardslashes“/”,而不是。毕竟,我指出了要求的那堆代码,并给出了一个有效的解决方案和解释,即使downvoter会使它有所不同。错误是由于split(//s),非常感谢。我很高兴解决了这个问题。显然,现在人们只是投了反对票。但是先生,你继续帮助像我这样的新手!(Y)@institute显然,sb.split(“”;
和sb.split(\\s”);
应该给出相同的结果。是的,但是OP使用了前斜杠“//毕竟,我指了指被要求的那一堆,给出了一个有效的解决方案和解释,即使落选者会让它有所不同。
hae
and
via
ecy
String sb = "have anic eday";
String[] words = sb.split("\\s"); //you need to use BACKWARDSLASH "\\s" to get it to work.
StringBuilder sbFinal = new StringBuilder();
for (int i = 0; i < words[0].length(); i++) {
for (int j = 0; j < words.length; j++) {
sbFinal.append(words[j].charAt(i));
}
sbFinal.append(" ");
}
System.out.println(sbFinal.toString());