2014-07-09 3 views
-4

나는이 과정을 온라인으로하고 있으며, 23 회의 수업이 이미 끝났기 때문에 되돌릴 수는 없다. 문자열 그래서 기본적으로자바에서 두 문자열 사이의 간격

의 내부는 내가 이름과 person1person2 세 사이에 공백이있을 원하는

Joe Bloggs 37 
Sarah Smith 20 

을 인쇄한다.

어떻게해야할까요?

나는 \n\t을 시도했지만 제 컴파일러는 나에게 소리 쳤습니다. 그리고 저는 아직 초보자이므로 오류 메시지의 의미를 이해하지 못합니다. 내가 가정 (

class Person { 

    String name; 
    int age; 

} 


public class Application { 

    public static void main(String[] args) { 

     Person person1 = new Person(); 
     person1.name = "Joe Bloggs"; 
     person1.age = 37; 

     Person person2 = new Person(); 
     person2.name = "Sarah Smith"; 
     person2.age = 20; 

     System.out.println(person1.name + person1.age); 
     System.out.println(person2.name + person2.age); 

    } 

} 
+2

System.out.println (person1.name + ""+ person1.age); –

+0

Duhhh, 그건 내 마음을 미끄러졌습니다. 도와 주셔서 고마워요 – user3811084

+0

LostMind, 그냥 내 마음을 순간적으로 미끄러. 그리고 나는 끝나지 않았다. 읽는다면, 나는 아직도 내가 초급자이고 여전히 수업 시간에 있다고 말했다. – user3811084

답변

2

또 다른 방법은 person1.name는 문자열이기 때문에

Sytem.out.println (String.format("%s %d", person1.name, person1.age)); 
1

에로 String.format 방법을 사용하는 것입니다, 그리고 person1.age는 int이며 여기

코드입니다), 전화 할 때 :

System.out.println(person1.name + person2.age); 

.. 실제로 두 속성을 하나로 연결합니다. 문자열.

두 필드가 모두 int 인 경우 동일한 작업으로 인해 두 개의 숫자가 추가되지만 문자열에 int를 추가하면 문자열 연결이 발생합니다.

당신이 호출 할 수 있습니다, 간격과 함께 두 가지를 추가하려면 : 뒤에 공백

System.out.println(person1.name + " " + person2.age); 

이 person1.name을 인쇄 할 수는 (""), person2.age 하였다. ""안에있는 내용이 모두 인쇄되므로 a : 또는 a;를 인쇄 할 수 있습니다. 예를 들면.

2

당신은 toString 다음과 같이 Person 클래스의() 메서드를 재정의 할 수 있습니다

@Override 
public String toString() { 
return name + " " +age; 
} 

당신이

System.out.println(anyPersonObject); 

의 모든 사람 개체를 인쇄 할 때 그래서 그것은 toString() 메소드의 반환 값을 출력합니다.

+0

+1 더 나은 제안을 위해 !!! 그리고 코멘트에 답하는 것을 피하십시오 !! :) –

+0

IMHO는'toString'을 오버라이드 (override)하는 것은 나쁜 생각입니다. 메소드에 대한 단일 사용법으로 당신을 수정하므로 디버그/진단 정보를 표시하는 것이 더 좋습니다. 더 좋은 방법은 어떤 종류의 포맷터를 제공하는 것입니다. 그냥 – MadProgrammer

+0

@MadProgrammer Agreed.But 말하는 이유는 이것이 개체를 인쇄하고 매번 속성 사이에 공간을 제안하지 않는 OP를 유도하는 적절한 방법 일 수 있습니다. 매번 속성이 있다면 어떨까요? –

1

String을 포맷하는 방법이 있습니다.

String result1 = String.format("%s %d", person1.name, person1.age); 
    System.out.println(result1);//Result - Bloggs 37 

    String result2 = String.format("%s is %d old", person1.name, person1.age); 
    System.out.println(result2);//Result - Joe Bloggs is 37 old 

    String result3 = String.format("%s\t%d", person1.name, person1.age); 
    System.out.println(result3);//Result - Joe Bloggs 37 

도움이되기를 바랍니다.