Я предполагаю, что вы можете предварительно обработать входящую строку. В этом случае вы можете увидеть, есть ли у вас ввод с пробелами:
if("string with possible spaces".contains(" ")) {
System.out.println("yay");
}
Обратите внимание, что это будет работать только в том случае, если на вашем входе есть символ пробела. Если вы хотите быть более тщательным, предполагая, что символы ввода или символы новой строки являются возможными входными данными, вы можете использовать регулярное выражение:
String s = ".+\\s.+";
Pattern p = Pattern.compile(s);
Matcher m = p.matcher("string with possible spaces or tabs");
if(m.matches()) {
System.out.println("yay");
}
Редактировать : Вы можете использовать предоставленный мною код для определения наличия пробелов на входе. Если нет, вам не нужно ничего делать. Если у вас есть пробелы, ситуация немного сложнее. Читая ответы других людей и ваш исправленный вопрос, я могу только предположить, что ввод, содержащий пробелы, должен быть заключен в кавычки, чтобы интервал не мешал выполнению стандартной команды. Там есть пробелы, вы должны:
- проверить, есть ли какие-либо кавычки в вашем вводе
- если они есть, избегайте их (измените
"
на \"
)
- заключить ввод в кавычки (
some input
становится "some input"
)
В конечном итоге вы хотите, чтобы ввод, например some "funky" input
, стал "some \"funky\" input"
.
Примечание: остерегайтесь одиночных кавычек ('
). Иметь дело с ними соответствующим образом.