при возврате строки в генераторе паролей;вы возвращаете все первые буквы - затем все последние буквы:
return count + firstChar + lastChar;
В вашем цикле for;вместо добавления их в две отдельные строки, добавьте их в одну и ту же строку. Вам нужно сохранить логическое значение, чтобы проверить, добавляете ли вы первую или последнюю букву.
public static String pwdgen(String s) {
String[] Splitted = s.split(" ");
int count = s.split(" ").length;
int i = 0;
String pass = "";
boolean addFirstLetter = true;
for(i = 0; i < count; i = i + 1) {
pass += (addFirstLetter) ? Splitted[i].substring(0, 1) : Splitted[i].substring(Splitted[i].length() - 1);
addFirstLetter = !addFirstLetter;
}
return count + pass;
}
public static void main(String[] args) {
String pwd = pwdgen("Dies ist nur ein doofes Beispiel");
System.out.println(pwd); // => "6Dtnndl"
System.out.println(pwdgen("a b c")); // => 3abc
}
addFirstLetter будет отслеживать, добавляете ли вы первую букву в этом цикле или нет, затемОператор ternery (?:) добавит правильную букву в строку. Затем логическое значение переключается для добавления другой буквы в следующем цикле.