В противоположном случае позвоните по номеру contains
по вашей строке вариантов. И как Clone Talk упоминалось вам не нужно String.valueOf
, так как convert
уже String
(Хотя, он работает с ней, как хорошо.):
public static void main(String[] args) {
while (true) {
StringBuffer StringBuffer = new StringBuffer();
Scanner input = new Scanner(System.in);
System.out.println("Hi, what are you trying to find?");
System.out.println("mass");
System.out.println("vol");
System.out.println("temp");
System.out.println("sphere");
System.out.println("density");
String convert = input.nextLine();
if ("mass, volume, sphere, temp, density, pound, ounce, ton, gram,".contains(convert)) {
StringBuffer.append(convert);
} else {
System.out.println("Wrong input. Try again.");
}
}
}
Решение комментарии:
почему if(convert.contains("...."))
Безразлично» t работает?
Самый простой способ взглянуть на the documentation of String.contains
: возвращает истину, если и только если эта строка содержитуказанная последовательность полукокса значений.
эта строка в исходном примере из вопроса (не в моем ответе) является convert
, который может быть либо "mass"
или "volume"
или т.п .;
указанная последовательность значений char такова, что длинная строка "mass, volume, ..."
.
Итак, как, например, "mass"
может содержать "mass, volume, etc."
? Это наоборот, действительно: "mass, volume, etc.".contains("mass") == true
HashSet.contains будет более производительным
Он не похож на строки будут достаточно большими, чтобы чувствовать прирост производительности в этом примере, но вообще говоря, это хороший момент, особенно если количество возможных входов не мало и для удобства чтения и обслуживания. У вас может получиться так:
// This part may vary:
private static String [] variants = {"mass", "volume", "sphere", "temp", "density", "pound", "ounce", "ton", "gram"};
private static Set<String> inputs = new HashSet<>(Arrays.asList(variants));
public static void main(String[] args) {
while (true) {
StringBuffer StringBuffer = new StringBuffer();
Scanner input = new Scanner(System.in);
System.out.println("Hi, what are you trying to find?");
System.out.println("mass");
System.out.println("vol");
System.out.println("temp");
System.out.println("sphere");
System.out.println("density");
String convert = input.nextLine();
if (inputs.contains(convert)) {
StringBuffer.append(convert);
} else {
System.out.println("Wrong input. Try again.");
}
}
}
Вам не нужен String.valueOf (конвертировать), просто конвертируйте. – Locke