本帖最后由 王章亚 于 2012-6-25 09:58 编辑
老师的方法
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class FristMethod {
public void tran() {
int sum=0;
int yushu;
boolean flag = false;
try{
InputStream inputStream = System.in;
InputStreamReader inputStreamReader = new InputStreamReader(inputStream);
BufferedReader reader = new BufferedReader(inputStreamReader);
String str = reader.readLine();
char[] ch = str.toCharArray();
str.getChars(0, ch.length, ch, 0);
for (int i = 0; i < str.length(); i++) {
if (Character.isDigit(ch)) {
System.out.println("有非字符的字符串");
System.exit(0);
}
else{
for(int j=0;j<ch.length;j++){
sum=sum+(char)ch[j];
}
flag=true;
}
}
str="";
if (flag) {
while (sum != 0) {
yushu = sum % 2;
sum = sum / 2;
str=yushu+str;
}
System.out.println(str);
}
}catch(Exception e){
e.printStackTrace();
}
}
}
-------------------------------------------------------------------------------------------------------------------------我自己的方法功能是一样的不知道区别在哪里,我的方法里面有什么不合理的地方import java.util.Scanner;
public class SecondMethod {
/*
* 第二种方法比第一种简单
*/
public static void main(String[] args) {
int sum=0;
int yushu;
boolean flag=false;
Scanner input =new Scanner(System.in);
System.out.println("请输入一个字符串");
String str=input.next();
char[] ch=str.toCharArray();
for(int i=0;i<ch.length;i++){
if (Character.isDigit(ch)) {
System.out.println("有非字符的字符串");
System.exit(0);
}
else{
for(int j=0;j<ch.length;j++){
sum=sum+(char)ch[j];
}
flag=true;
}
}
str="";
if(flag){
while(sum!=0){
yushu=sum%2;
sum=sum/2;
str=yushu+str;
}
System.out.println(str);
}
}
}
|
|