【发布时间】:2021-10-04 22:26:17
【问题描述】:
我正在创建一个由两个 java 文件组成的程序。第一个涉及创建一个类,该类接受来自用户的二进制文件并返回其十进制值。第二个涉及创建一个类,该类从文本文件中读取二进制字符串列表并将其十进制值写入控制台。这个类应该调用第一个java类的方法来完成它的任务,并且应该能够指示这个文件中的一个字符串是否不是二进制的。
我已经完成了第一个 java 类,但我在第二个方面遇到了困难,特别是我如何让程序从文本文件中读取每个单独的字符串,然后打印出它们的值或声明它们是不是二进制文件。我还需要一些关于如何从头等舱调用方法的帮助。有人可以帮助我朝着正确的方向前进吗?
这是两个代码:
第 1 类:
import java.util.*;
public class BinaryDecoder {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.print("Enter a binary: ");
String binary = input.nextLine();
System.out.println("---------------");
boolean isBinary = binaryDetector(binary);
if(isBinary) {
int count = 0;
for(int i=0; i<binary.length(); i++) {
if(binary.charAt(i) != ' ') {
count++;
}
}
int binarySize = Integer.valueOf(count);
System.out.println("Binary size: " + binarySize);
int decimalValue = binaryToDecimal(binary);
System.out.println("Value = " + decimalValue);
}
else {
System.out.println("Not a binary");
}
}
public static boolean binaryDetector(String x) {
int copyOfInput = Integer.valueOf(x);
while(copyOfInput != 0) {
if(copyOfInput % 10 > 1) {
return false;
}
copyOfInput = copyOfInput/10;
}
return true;
}
public static int binaryToDecimal(String n) {
String num = n;
int dec_value = 0;
int base = 1;
int len = num.length();
for(int i = len - 1; i>= 0; i--) {
if(num.charAt(i) == '1') {
dec_value += base;
}
base = base * 2;
}
return dec_value;
}
}
2 级
import java.io.File;
import java.io.FileNotFoundException;
import java.util.Scanner;
public class BinaryToDecimalTester {
public static void main(String[] args) throws Exception{
Scanner inFile = new Scanner(new File("Strings.txt"));
while(inFile.hasNext()) {
String inString = inFile.next();
}
}
}
假设文本文件中有这些数字作为参考:
1011010011101
1011101110101
1201234000100
1234456000110
1011010100011
如果您需要更多说明或信息,请告诉我。非常感谢大家!
【问题讨论】:
-
我更新的答案可能有助于解决您的问题。
标签: java binary text-files