2017-05-06 5 views
0

두 개의 목록으로 구성된 프로그램을 작성하고 있습니다. 왼쪽은 입력 목록이고 오른쪽은 출력 목록입니다. 사용자가 텍스트 나 숫자를 입력하도록 요청한 다음 입력을 왼쪽의 목록에 추가합니다. 사용자 입력이 1과 0만으로 구성된 경우, 프로그램이 실행될 때 입력을 2 진수에서 10 진수로 변환합니다. 예를 들어 사용자가 "111001 a"또는 "112"를 입력하면 전혀 변경되지 않습니다. 나는이 부분만을위한 코드로 고심하고있다. 나는 거기에있는 동안 사용하기로되어 있다고 주장하지만 도움을 줄 수 있는가?입력이 1과 0으로만 구성된 경우 이진에서 소수로 변환하십시오.

/* 
    private String oList[]; 
    private JList<String> ListRight; 
    addCounter = 0; 
    oList = new String[10]; */ 


void run() { 

    String value = textField.getText(); 
    String result = 

    //while input consists of ONLY 1s and 0s, convert from binary to decimal 

    oList[addCounter] = result; 

    ListRight.setListData(oList); 
    outCounter++; 
} 

그것은, 입력 필드 (에 textField)의 값을 취하는 ListLeft에 추가하고 또한 oList에 추가하고 I가 프로그램을 실행할 때, 그것은 출력 진수 또는 ListLeft과 동일한 텍스트 중 하나를 가정한다 .

here is how it looks like

+1

사용 ['Integer.parseInt'] (https://docs.oracle.com/javase/8/docs/api/java/lang/Integer.html# 시도 parseInt-java.lang.String-int-)를 적절한 기수로 변환합니다. 실패하면 바이너리가 아닙니다. –

답변

1

확인 먼저 문자열 value는 문자가 포함 10를 excepts하고 포함하지 않는 경우 다음 decimal 값으로 변경하는 경우.

String value = textField.getText(); 
String result; 
String str = value.replaceAll("[01]",""); 

if(str.isEmpty()) 
    result=Integer.toString(Integer.parseInt(value,2)); 
else 
    result=value; 
+0

감사합니다 !!! 이제는 사용자가 4 개의 입력을 추가하더라도 프로그램이 마지막 입력뿐만 아니라 4 개의 입력을 모두 출력하도록 만들 필요가 있습니다. –

+0

혼자서해야 할 일! –

+1

네, 다시 한번 감사드립니다! –

0

String s = "1010a"; 
try{ 
    int i = Integer.parseInt(s, 2); 
    //Do something(no is valid) 
}catch(NumberFormatException e){ 
    //Display error(no is invalid) 
}