BackEndJava
2018-06-13 BackEnd, Java
String -> int, int-> String 형변환
1) String -> int 형변환
1 | Integer.parseInt(str); |
2) int -> String 형변환
1 | String.valueOf(numInt); |
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 | public class TestClass { public static void main(String[] args) { String str = "1"; // String -> int 형변환 int numInt = Integer.parseInt(str); System.out.println(numInt + 1); // 출력 결과 : 2 // int -> String 형변환 String numStr = String.valueOf(numInt); System.out.println(numStr + 1); // 출력결과 : 11 } } |
[JAVA] String to int, int to String 형변환 컴퓨터/코딩 - java, jsp 2013. 4. 7. 23:00
자바(JAVA) 형 변환(String과 int)
Strinig to int
String from = "123";
int to = Integer.parseInt(from);
int to String
int from = 123;
String to = Integer.toString(from);
저작자표시 비영리 변경금지
'컴퓨터 > 코딩 - java, jsp' 카테고리의 다른 글
2013.07.31 |
2013.04.08 |
2013.03.28 |
2013.03.09 |
2013.03.09 |
iNT, Java, String, 자바, 자바 형변환
, 댓글5개
티스토리 뷰
valueOf (Object obj)
- Returns the string representation of the Object argument. (Java docs)
- if the argument is null, then a string equal to "null"; otherwise, the value of obj.toString() is returned. (Java docs)
- 파라미터에 들어가는 Object (int, boolean, double, float ...) 등을 String 문자열 표현으로 바꿔 반환해준다.
- 파라미터가 null 이라면, String 문자열로 "null"로 반환되며, null이 아니라면 toString() 함수값을 반환한다.
Object.toString()
- In general, the toString method returns a string that "textually represents" this object. (Java docs)
- The result should be a concise but informative representation that is easy for a person to read. (Java docs)
- It is recommended that all subclasses override this method. (Java docs)
- Returns : a string representation of the object. (Java docs)
- 일반적으로, toString 메소드는 이 object를 "텍스트로 표현하는" String 문자열을 반환한다.
- 결과는 사람들이 읽기 쉬운 유의미하지만 간결한 표현이여야 한다. 모든 subclass들이 이 메소드를 오버라이드하는 것이 좋다.
Casting
- Object가 String 타입을 필요로 한다는 것을 의미한다.
- 따라서 Object가 실제로 String 문자열이여야 변환된다.
- ex)
- int value = 432;
- String str = value + ""; -> str은 문자열 "432"가 된다. (int -> String 으로 변환하는 방법 중 하나)
- why?) 덧셈 연산자는 두 개의 피연산자 중 어느 한 쪽이라도 String이라면 결과는 String이다.
- Object reallyAString ="foo";
- String str =(String) reallyAString; -> str은 문자열 "foo"가 된다.
- Object notAString =newInteger(42);
- String str =(String) notAString; -> ClassCastException 발생시킨다.
- Object nullValue = null;
- String str = (String) nullValue; -> str은 문자열 "null"이 된다.
Obj.toString()
- Object (Wrapper Class[Integer, Character, Double ...]) 의 데이터를 String 문자열로 바꿔준다.
- toString() 은 메소드이므로 기본 자료형 (Primitive Type) 은 사용할 수 없다.
- ex)
- int primitype = 3;
- String str = primitype.toString() -> 기본 자료형은 메소드를 사용할 수 없으므로 에러가 발생한다.
- String str = (new Integer(42)).toString() -> str은 문자열 "42"가 된다.
- Object nullValue = null;
- String str = nullValue.toString() -> NullPointerException 발생시킨다.
String.valueOf()
- 어떠한 값을 넣어도 모두 String 문자열로 변환할 수 있다.
- ex)
- String str;
- str =String.valueOf(newInteger(42)); -> str은 문자열 "42"가 된다.
- str =String.valueOf("foo"); -> str은 문자열 "foo"가 된다.
- Object nullValue =null;
- str =String.valueOf(nullValue); -> 위에서 언급한 것과 같이 문자열 "null"가 된다.
Casting / valueOf() 성능 비교
- case 1:
- 1. strTest1 = "" + 432;
- 2. strTest2 = String.valueOf(432); (O)
- 1번의 경우, 빈 문자열에 다른 타입 데이터를 덧셈 연산자 (+) 로 연결할 시 효율성이 떨어진다고 한다.
- 왜냐하면 빈 문자열에 String을 +로 연산하면 컴파일러에서 데이터 판단 작업이 발생 하기 때문이라고 한다.
- case 2:
- 1. strTest = "0" + 432; (O)
- 2. strTest = "0" + String.valueOf(432);
- 해당 사례의 경우, "0" 자체는 빈 String 문자열이 아니기 때문에 이후에 + 로 연결되는 데이터는 String으로 인식한다.
- 따라서, 불필요하게 String.valueOf() 메소드를 쓸 필요가 없다고 한다.
Reference
- //m.blog.naver.com/PostView.nhn?blogId=yysvip&logNo=220105002997&proxyReferer=https%3A%2F%2Fwww.google.com%2F
- //plogds.tistory.com/174
- //docs.oracle.com/javase/7/docs/api/
- //stackoverflow.com/questions/16815279/difference-between-casting-to-string-and-string-valueof