매니저/JAVA1

JAVA1 StringStudy 숙제 (임시저장)

cdprkr2077 2011. 12. 23. 20:39


import java.util.StringTokenizer;

class  StringStudy
{
 public static void main( String[] args )
 {
  StringTokenizer st = new StringTokenizer( "800112-1111111", "-" );
  // 1980년 1월 12일 생 32살 남자입니다.
 }
}








풀이 1


import java.util.StringTokenizer;

class  StringStudy
{
 public static void main( String[] args )
 {
  StringTokenizer st = new StringTokenizer( "800112-1111111", "-" );
  // 1980년 1월 12일 생 32살 남자입니다.

  StringBuffer sb = new StringBuffer();
  while( st.hasMoreTokens() )
  {
   sb.append( st.nextToken() );
  }

  int year = ( sb.charAt( 0 ) - 48 ) * 10 + sb.charAt( 1 ) - 48 + ( sb.charAt( 6 ) == '3' || sb.charAt( 6 ) == '4' ? 2000 : 1900 );
  int month = ( sb.charAt( 2 ) - 48 ) * 10 + sb.charAt( 3 ) - 48;
  int day = ( sb.charAt( 4 ) - 48 ) * 10 + sb.charAt( 5 ) - 48;

  int age = 2011 - year + 1;

  String gender = sb.charAt( 6 ) == '1' || sb.charAt( 6 ) == '3' ? "남자" : "여자";
  
  System.out.println( year + "년 " + month + "월 " + day + "일 "  + age + "살 " + gender + "입니다.");  
 }
}





풀이 2



import java.util.StringTokenizer;

class  StringStudy2
{
 public static void main( String[] args )
 {
  StringTokenizer st = new StringTokenizer( "800112-1111111", "-" );
  // 1980년 1월 12일 생 32살 남자입니다.

  StringBuffer sb = new StringBuffer();
  while( st.hasMoreTokens() )
  {
   sb.append( st.nextToken() );
  }

  int year = ( sb.charAt( 0 ) - 48 ) * 10 + sb.charAt( 1 ) - 48 + ( sb.charAt( 6 ) == '3' || sb.charAt( 6 ) == '4' ? 2000 : 1900 );
  int month = ( sb.charAt( 2 ) - 48 ) * 10 + sb.charAt( 3 ) - 48;
  int day = Integer.parseInt( sb.substring( 4, 6 ) );

  int age = 2011 - year + 1;

  String gender = sb.charAt( 6 ) == '1' || sb.charAt( 6 ) == '3' ? "남자" : "여자";
  
  System.out.println( year + "년 " + month + "월 " + day + "일 "  + age + "살 " + gender + "입니다.");  
 }
}