2013-10-12 3 views
0

저는 Java 프로그래밍에 익숙하지 않고 어디서나 내 문제에 대한 답을 찾을 수 없습니다.Java에서 순환되는 인쇄 된 라인을 포맷하는 방법

9.0     48.2     : 기본적으로, 나는 성공적 그러나 내 루프 print 문이 제대로이 비슷한 숫자 9 이후에 줄 지어되지 않습니다 섭씨 변환에 화씨 변환 및 화씨 섭씨의 도표를 구축하는 프로그램을 만들었습니다 40.0     4.44    
    10.0 50.0 41.0         5.0

I는 두 개의 방법의 t를 사용해야했다 o 변환을 계산 한 다음 main 메소드 내에서 호출하십시오. 저는 여기에 참고로하는 것에하고 println 메소드 문을 주요 방법 : 짧은 긴 이야기를 만들기 위해

public static void main(String[]args){ 
    double celsius = 1; 
    double fahrenheit = 32; 

    while(celsius <= 50 && fahrenheit <= 120){ 

    double toFarhenheit = celsiusToFahrenheit(celsius); 
    double toCelsius = fahrenheitToCelsius(fahrenheit); 

    DecimalFormat fardec = new DecimalFormat("#.##"); 
    toFarhenheit = Double.valueOf(fardec.format(toFarhenheit)); 

    DecimalFormat celsdec = new DecimalFormat("#.##"); 
    toCelsius = Double.valueOf(celsdec.format(toCelsius)); 

    System.out.println(celsius + " " + toFarhenheit + " " + fahrenheit + 
      " " +toCelsius); 

    celsius++; 
    fahrenheit++;    
    }  
} 

이 숫자가 줄 수 있도록 긴 인쇄 문 이런 종류의와의 printf를 사용하는 어쨌든 거기 서로?

과거에는 printf % 3d와 % 5d 등을 사용하여 정수를 출력했지만,이 특정 print 문으로는 작동하지 않았습니다.

아이디어 및/또는 도움을 많이 주시면 감사하겠습니다.

+0

잘못된 코드 형식이 수정되었습니다. 코드를 쉽게 읽을 수 있도록 노력하십시오. –

답변

0

\ t을 사용하면 이러한 공백을 공백으로 구분하여 서식을 지정할 수 있습니다.

System.out.println(celsius + "\t" + toFarhenheit + "\t" + fahrenheit + 
     "\t" +toCelsius); 
+3

이렇게하면 신뢰할 수없는 결과가 발생할 수 있습니다. –

+0

이 솔루션은 저에게 효과적이었습니다. 문제 해결. 호버크라프트, 어떻게 이것이 신뢰할 수없는 결과를 가져올 수 있습니까? – censortrip

+0

제공 한 코드가 허용하지 않더라도 문자 열이 탭보다 길면 신뢰할 수없는 결과를 초래할 수 있습니다. – Troubleshoot

4

System.out.printf(...) 및 형식 문자열을 사용하여 데이터를 일반 열로 출력하십시오. \t은 신뢰할 수 없으므로 사용하지 마십시오. 예를 들어 here으로 보겠습니다. 은 formatString 꽤 출력을 허용 할 printf와 형식 지정 및 폭 상수를 사용하는 String입니다

System.out.printf(formatString, celsius, toFarhenheit, fahrenheit, toCelsius); 

:

결국 코드는 같을 것이다. 형식 문자열로 실험 해 보겠습니다. 또한 "% n"으로 끝나기 때문에 사실상 서식이있는 println이됩니다.

+0

감사합니다 HFOE, 나는 형식 문자열로 어지럽게되었습니다. 나는 아직도 4 줄 모두를 사용할 수 없으며 첫 번째 섭씨 만 실제로 인쇄하고 서식 줄 끝에 "% n"을 추가했습니다. – censortrip

1

호버크라크 Full of Eels가 말하길, "\t"없이 System.out.printf를 사용하는 것이 더 나은 해결책입니다. 예를 들어, 다음과 같은 일을 할 수 있어야한다 :

형식의
String myformat = "%0$10s"; 

설명 :

  1. %0s
  2. $10 최소 보장하도록 지시하는 문자열로 출력을 식별 10 자의 문자가 출력에 기록됩니다. 따라서 고정 폭을 갖게됩니다.

는 "\ (T)를"사용 또는의 printf를 사용하여

0

[I가 꺼져있어 경우에 누군가가 저를 정정 할 수 있도록 한 동안 자바를 사용하지 않은 일부 자세한 내용은 http://docs.oracle.com/javase/6/docs/api/java/util/Formatter.html#syntax 아마보기 공간이 추가되는 동안 2 개의 문자열 리터럴을 고려해야하므로 도움이되지 않습니다. 예를 들면. 9.0은 3 자이고 10은 4 자입니다.이 경우 적용된 공백은 정확하지만 문자열 리터럴 자체는 길이가 다릅니다.

아래와 같이 코드를 변경하고 해쉬를 하나 더 사용하십시오.

DecimalFormat fardec = new DecimalFormat("##.##");