java如何比较1和0,它们是否相等?使用文件阅读器
我试图包装一个Java程序,它读取文本文件中的输入,并将1与0进行比较。当1s的频率等于0s的频率时,结果相等
例如:
输入。文本
1100
100
101
10
输出。文本
Equal!
Not Equal!
Not Equal!
Equal
这是我正在使用的代码:
package automata;
import java.io.BufferedReader;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
public class Main {
public static void main(String[] args) throws FileNotFoundException, IOException {
FileReader freader = new FileReader("Input.txt");
BufferedReader br = new BufferedReader(freader);
try
{
String s="";
while((s = br.readLine()) != null)
{
int count = 0;
for(int i = 0 ; i < s.length() ; i++)
{
if(s.charAt(i) == '0') count++;
else if(s.charAt(i) == '1') count--;
}
if(count == 0) System.out.print("Equal!\n");
else System.out.print("Not Equal! \n");
}
} catch (FileNotFoundException e){
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
}
}
# 1 楼答案
我就是这么做的
# 2 楼答案
如果迭代每行的每个字符
您可以计算1或0,并将结果与完整字符串长度的一半进行比较
你可以使用一个初始化为零的计数器,每一个计数器向上计数一次,每一个计数器向下计数一次,这样你就可以在相等数量的1和0上把它归零
另外,如果你获得了大量数据(很多行和很长的行),在到达终点之前定期检查一行是否相等可能是有意义的(如果2000个字符的行上有1001个,你不需要再检查并保存999个数据)