class VerticalWords
{
public static void toVerticalWords
(String str
){
//split the words by whitespace
String[] strArr
= str.
split("\\s"); int maxWordLen = 0;
//get the longest word length
for(String strTemp
: strArr
) { if(strTemp.length() > maxWordLen)
maxWordLen = strTemp.length();
}
//make a matrix of the words with each characetr in an array block
char[][] charArr = new char[strArr.length][maxWordLen];
for(int i=0; i<strArr.length; i++) {
int j=0;
for(char ch : strArr[i].toCharArray()){
charArr[i][j] = ch;
j++;
}
}
//print the vertical word pattern
for(int j=0; j<maxWordLen; j++) {
for(int i=0; i<strArr.length; i++) {
if (i!=0)
System.
out.
print(charArr
[i
][j
]); }
}
}
public static void main
(String[] args
) {
toVerticalWords("Hello Jack the Magnificient");
}
}
Y2xhc3MgVmVydGljYWxXb3Jkcwp7CnB1YmxpYyBzdGF0aWMgdm9pZCB0b1ZlcnRpY2FsV29yZHMoU3RyaW5nIHN0cil7CgogICAgICAgIC8vc3BsaXQgdGhlIHdvcmRzIGJ5IHdoaXRlc3BhY2UKICAgICAgICBTdHJpbmdbXSBzdHJBcnIgPSBzdHIuc3BsaXQoIlxccyIpOwogICAgICAgIGludCBtYXhXb3JkTGVuID0gMDsKCiAgICAgICAgLy9nZXQgdGhlIGxvbmdlc3Qgd29yZCBsZW5ndGgKICAgICAgICBmb3IoU3RyaW5nIHN0clRlbXAgOiBzdHJBcnIpIHsKICAgICAgICAgICAgaWYoc3RyVGVtcC5sZW5ndGgoKSA+IG1heFdvcmRMZW4pCiAgICAgICAgICAgICAgICBtYXhXb3JkTGVuID0gc3RyVGVtcC5sZW5ndGgoKTsKICAgICAgICB9CgogICAgICAgIC8vbWFrZSBhIG1hdHJpeCBvZiB0aGUgd29yZHMgd2l0aCBlYWNoIGNoYXJhY2V0ciBpbiBhbiBhcnJheSBibG9jawogICAgICAgIGNoYXJbXVtdIGNoYXJBcnIgPSBuZXcgY2hhcltzdHJBcnIubGVuZ3RoXVttYXhXb3JkTGVuXTsKICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHJBcnIubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgaW50IGo9MDsKICAgICAgICAgICAgZm9yKGNoYXIgY2ggOiBzdHJBcnJbaV0udG9DaGFyQXJyYXkoKSl7CiAgICAgICAgICAgICAgICBjaGFyQXJyW2ldW2pdID0gY2g7CiAgICAgICAgICAgICAgICBqKys7CiAgICAgICAgICAgIH0KICAgICAgICB9CgogICAgICAgIC8vcHJpbnQgdGhlIHZlcnRpY2FsIHdvcmQgcGF0dGVybgogICAgICAgIGZvcihpbnQgaj0wOyBqPG1heFdvcmRMZW47IGorKykgewogICAgICAgICAgICBmb3IoaW50IGk9MDsgaTxzdHJBcnIubGVuZ3RoOyBpKyspIHsKICAgICAgICAgICAgICAgIGlmIChpIT0wKQogICAgICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoIiAiKTsKICAgICAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnQoY2hhckFycltpXVtqXSk7CiAgICAgICAgICAgIH0KCiAgICAgICAgICAgIFN5c3RlbS5vdXQucHJpbnRsbigpOwogICAgICAgIH0KICAgIH0KCiAgICBwdWJsaWMgc3RhdGljIHZvaWQgbWFpbihTdHJpbmdbXSBhcmdzKQogICAgewogICAgICAgIHRvVmVydGljYWxXb3JkcygiSGVsbG8gSmFjayB0aGUgTWFnbmlmaWNpZW50Iik7CiAgICB9Cn0K