Ich bin extrem neu in der Programmierung und beschloss, ein Programm zu erstellen, das ASCII-Zeichenfolgen in Binärzeichenfolgen und Binärzeichenfolgen in ASCII-Zeichenfolgen übersetzt. Das Problem, das ich habe, ist, dass, während das Programm erfolgreich kompiliert, es mir nicht erlaubt, die zu übersetzende Zeichenkette einzugeben, nachdem ich gewählt habe, ob ich in oder aus der Binärdatei übersetzen soll.Java Scanner Laufzeitfehler
import java.util.Scanner;
public class Translator
{
public static void main(String[] args)
{
int valueoftype;
Scanner in = new Scanner(System.in);
System.out.println("Enter 1 if converting to binary. Enter 0 if converting from binary.");
valueoftype = in.nextInt();
System.out.println("What is your input?");
String input = in.nextLine();
if(valueoftype == 1)
{
byte[] bytes = input.getBytes();
StringBuilder binary = new StringBuilder();
for (byte b : bytes)
{
int val = b;
for (int i = 0; i < 8; i++)
{
binary.append((val & 128) == 0 ? 0 : 1);
val <<= 1;
}
binary.append(' ');
}
System.out.println(input + " in binary is " + binary);
}
else if(valueoftype == 0)
{
StringBuilder result = new StringBuilder();
for (int i = 0;i < input.length();i += 8)
{
result.append((char) Integer.parseInt(input.substring(i, i + 8), 2));
}
System.out.println(input + "in ascii is"+ result);
}
else
{
System.out.println("Error cannot procede with incorrect value.");
System.out.println("Enter 1 if converting to binary. Enter 0 if converting from binary.");
valueoftype = in.nextInt();
}
}
}
Ich habe meinen Kopf in den letzten paar Stunden wurde kratzen versuchen, genau herauszufinden, was in der Welt mit meinem Code falsch ist, hoffen ich von jemandem eine Erklärung zu bekommen.
wahrscheinlich ein Duplikat. 'nextInt()' verbraucht das Zeilenumbruchzeichen nicht. Platziere 'in.nextLine()' nach deinem 'nextInt()'. – user3437460