1> Random 클래스 : 일정 범위의 값들에서 임의수 수를 선택하여 반환하는 역할
- new Random() 으로 객체 생성
- int nextInt() : 모든 int 값의 범위의 난수를 발생시켜 반환한다.
( int 전체 범위 : -2,147,483,648 ~ +2,147,483,647 )
- int nextInt(int num) : 해당 int num 숫자의 범위 (0 ~ num - 1) 범위에서 난수를 발생시켜 반환한다.
( nextInt(100) : 0 ~ 99 )
0부터 시작하는 범위를 변경하기 위해서는 뒤에 숫자를 별도로 더해줍니다.\
( nextInt(100) + 10 : 10 부터 109 까지 범위가 된다.)
<예시>
for (int i=0 ; i<10 ; i++)
{
// 문자열로 선언된 num에 0 ~ 9까지의 숫자 중 난수를 생성하여 붙여주기
string_num += Integer.toString(random.nextInt(10));
}
2> String 문자열 합치기
문자열을 합치는 방식에는 2~3 가지 방식이 가능하며, 기능은 같지만 성능상으로 차이가 있다고 합니다.
- ‘+’ 사용하기
단순히 A 문자열과 B 문자열을 더하여 합친다는 직관적인 의미입니다.
<예시>
String A = “test”;
String B = “data”;
A = A+B;
println(“A = “ + A);
-> A = testdata 출력
- Concat() 사용하기
String A = “test”;
String B = “data”;
A = B.concat(A);
println(“A = “ + A);
-> A = testdata
- append() 사용하기
append 도 concat 함수와 사용하는 방법은 같습니다.
Append는 StringBuffer 또는 StringBuilder를 선언해서 사용하여,
String 임시 객체 생성을 방지하고, 메모리 절약이 된다고 합니다.
'+'로 문자열을 합치면 String a; String b; 선언하고 a+b 를 하면 새로운 String을 생성한다고 합니다.
(이는 메모리 할당과 해제를 발생시켜 성능적으로 좋지 않다고 합니다.)
StringBuilder 객체는 똑같이 String 과 같이 문자열을 담는 역할을 하지만
문자열을 추가, 수정 ,삭제 할 때 새로운 객체를 생성하지 않고
기존의 데이터에 더하는 방식이라 속도도 빠르고, 상대적으로 부하가 적다고 합니다.
StringBuilder 경우, 추가적으로 같은 방식으로 insert, replace, remove 를 써서
중간에 원하는 위치에 문자열을 삽입하거나, 일부를 교체, 삭제를 할 수 있습니다.
StringBuilder는 변경가능한 문자열이지만 동기화가 적용되지 않고,
Buffer는 변경 가능하지만, 멀티 쓰레드 환경에서 안전한 클래스 라고 하고,
StringBuffer 같은 경우 멀티 쓰레드 환경에서 다른 값을 변경하지 못하므로,
web이나 소켓 환경 같이 비동기 동작에서 사용하는 것이 좋다고 합니다.
<StringBuilder, StringBuffer 객체 정의>
StringBuilder 변수명 = new StringBuilder();
StringBuffer 변수명 = new StringBuffer();
-> 변수명.append(“합치고자 하는 문자열”);
<예시>
String B = “data”;
StringBuilder A = new StringBuilder();
A.append(“///”);
A.append(B);
StringBuffer A = new StringBuffer();
A.append(“///”);
A.append(B);
println(“A = “ + A);
-> A = ///data
* String문자열 자르기, 치환하는 substiring, replace 함수 사용은 아래 내용 참고하시면 됩니다!
https://lovefor-you.tistory.com/164
저도 필요해서 찾아봐서 정리하였는데 도움이 되셨으면 해서 작성하였습니다~!
조금이나마 도움이 되셨으면 좋아요 하트♥나 구독 부탁드립니다~!
파이팅 하시고 좋은 하루 되세요!!
'IT ▶ > Java & Web' 카테고리의 다른 글
[Java] 인코딩, 디코딩 개념 (유니코드, EUC-KR, UTF-8) (0) | 2019.10.11 |
---|---|
[Java] String 문자열 자르기, 치환하기 – substring, replace 함수 사용 (0) | 2019.10.08 |
[Java] "".equals() 와 '==' 으로 Null 값 체크방식 차이 정리 (2) | 2019.07.26 |
[JavaScript] 객체, 생성자 개념 (Object, Constructor Concept) (2) | 2019.05.12 |
[JavaScript] 배열, 반복문, 함수 개념 (0) | 2019.04.29 |