这个是我写的转换类,能将十进制转换成二进制,要用到递归:- class Transform{
- private String input;
- private ArrayList<Integer> binaryResult = null;
- private String stringResult;
- public void decimalToBinary(int d){ //将十进制转换车成二进制,结果存放在binarResult中
- if(d == 1)
- binaryResult.add(0, new Integer(d));
- else{
- binaryResult.add(0, new Integer(d%2));
- decimalToBinary(d/2);
- }
- }
- public Transform(String in){ //构造函数
- input = new String(in);
- binaryResult = new ArrayList<Integer>();
- stringResult = new String();
- }
- public void showResult(){ //输出类集ArrayList<Integer> binaryResult;
- System.out.println(binaryResult);
- }
- public void changeString(String str){ //修改输入字符窜
- input = str;
- }
- public String getStringResult(){ //将结果转换为字符串存放在stringResult中,
- StringBuffer buf = new StringBuffer();
- for(int i = 0; i < binaryResult.size(); i++){
- buf.append(binaryResult.get(i).intValue());
- }
- stringResult = buf.toString();
- return stringResult;
- }
- static public boolean verify(String str){ //此函数用与校验,是static函数
- char ch[] = str.toCharArray();
- for(int i = 0; i < ch.length; i++){
- if(ch[i] < '0' | ch[i] > '9'){
- System.out.println("字符串中含有无法转换成数字的字符:"+ch[i]);
- return false;
- }
- }
- return true;
- }
- private boolean verify(){ //类中使用的校验函数,是上一个函数的重载
- char ch[] = input.toCharArray();
- for(int i = 0; i < ch.length; i++){
- if(ch[i] < '0' | ch[i] > '9'){
- System.out.println("字符串中含有无法转换成数字的字符:"+ch[i]);
- return false;
- }
- }
- return true;
- }
- public void calculator(){ //用于执行题目中所要求的过程
- if(verify()){
- decimalToBinary(Integer.parseInt(input));
- getStringResult();
- System.out.println("字符串"+input+"转换成二进制数是:"+stringResult);
- }else
- return;
- }
- }
复制代码 |