본문 바로가기
자바

자바 문자열 대치(바꿈) replace( ) ,replaceAll ( ) [북붙따라하기]

by 세상 모든 것 들은 그 자신을 위해 존재한다. 2020. 12. 29.

1. replace()  메서드

사용 예제 ) 코드를 복붙 하여 실행해 보시기 바랍니다. 설명은 코드 아래 부분에 있습니다.

 

public class Sample {

	public static void main(String[] args) {

		///////////////// 특수 문자 예제
	
		String strHi = "영희는 철수를 싫어 합니다.";
		
		String newStrHi = strHi.replace("싫어","좋아");	//앞쪽 예전 뒤쪽 현재
		
		System.out.println("  사용 결과는 newStrHi : "+newStrHi);

	}
}
//결과는 :

//사용 결과는 newStrHi : 영희는 철수를 좋아 합니다.

 

구성은 :

기존문자열 . replace("예전 문자나 문자열" , " 바꿀 문자나 문자열 ");

 

앞쪽에는 지금 사용되고 있는 문자나 문자열을  뒤쪽에는 변경, 대치 후에 바꿀 문자나 문자열을 사용하면 됩니다.

 

 

2. replaceAll()  메서드

사용 예제 ) 코드를 복붙 하여 샐 행해 보시기 바랍니다. 설명은 코드 아래 부분에 있습니다.

 

public class Sample {

	public static void main(String[] args) {

		///////////////// 특수 문자 예제
	
		String strHi = "영희는:철수를%싫어#합니다.";
		
		String newStrHi = strHi.replaceAll("[:#%]"," [] ");	//문자열의 숫자 1,2,3 을 [] 로 변경 합니다.
                                                                 //물론 정규식도 가능합니다.
		
		System.out.println("  사용 결과는 newStrHi : "+newStrHi);

	}
}
//결과는 :

// 사용 결과는 newStrHi : 영희는 [] 철수를 [] 싫어 [] 합니다.

사용법은 replace( )와 비슷하지만 정규식 같은 것을 사용할 때 편하다.

위의 예처럼 데이터를 서로 주고 받을때 구분자로 주로 사용하는 ": # % "을 대치할 때 유용하다.

 

아래는 실전 예제 )

 

		for (int j = 0; j < strArrID.length; j++) { // 이름을 아이디로 맵핑하는 부분
			if (vtd.getStrId().equals(strArrName[j]) == true) {
				strIDBuff = strArrID[j];
				strPositionBuff = strPosition[j];
				
			}
		}
		//직책을 구해서 표시
		tfPosition.setText(strPositionBuff);

		String strBuff = "";
		if (vtd.getStrOk().equals("[결제 완료]") == true) {
			strBuff = ("fview" + strIDBuff + vtd.getStrDate() + vtd.getStrOk()).replace("[결제 완료]", "01");
			btnPayment.setVisible(false); // 결제가 된 상태면 결제 버튼이 안보인다.
			imageDojang.setVisible(true); // 결재버튼이 보이지 않는다.
			btnPayEdit.setVisible(false); // 결제완료일때는 수정요청 버튼이 보이지 않는다.
			btnAlertOK.setVisible(false); // 결재가 완료된 상태일때는 수정요청이 있다는 버튼은 보이지 않는다.
			imageEdit.setVisible(false);// 수정 전송완료 버튼 안보이게 함

		} else if (vtd.getStrOk().equals("(대기중)") == true) {
			strBuff = ("fview" + strIDBuff + vtd.getStrDate() + vtd.getStrOk()).replace("(대기중)", "--");
			btnPayCancel.setVisible(false); // 대기중일때는 결재취소 버튼이 보이지 않는다.
			imageDojang.setVisible(false);
			btnAlertOK.setVisible(false); // 대기중 상태일때는 수정요청이 있다는 버튼은 보이지 않는다.
			imageEdit.setVisible(false);// 수정 전송완료 버튼 안보이게 함

		} else if (vtd.getStrOk().equals("(수정요청)") == true) {
			strBuff = ("fview" + strIDBuff + vtd.getStrDate() + vtd.getStrOk()).replace("(수정요청)", "02");
			btnPayCancel.setVisible(false); // 수정요청일때는 결재취소 버튼이 보이지 않는다.
			btnPayEdit.setVisible(false); // 수정요청일때는 수정요청 버튼이 보이지 않는다.
			imageDojang.setVisible(false); // 결재도장이 보이지 않는다.
			btnAlertOK.setVisible(true);// 수정 요청상태에서는 수정요청사하이이 있다는버튼이 보임 함
			imageEdit.setVisible(true);// 수정 요청 버튼 보이게 함
			taHelp.setText(">>> 작업일지 의 수정 수정 요청이 들어 왔습니다... <<<\n\n " + "   맨 아랫 부분에 수정 요청 Massage 가 있습니다.\n\n"
					+ "   수정후 녹색 버튼을 선택해서 완료해 주세요.");

		} else if (vtd.getStrOk().equals("(수정완료)") == true) {
			strBuff = ("fview" + strIDBuff + vtd.getStrDate() + vtd.getStrOk()).replace("(수정완료)", "03");
			btnPayCancel.setVisible(false); // 수정완료일때는 결재취소 버튼이 보이지 않는다.
			btnAlertOK.setVisible(false);// 수정완료에 수정 전송완료 버튼 안보이게 함
			imageEdit.setVisible(false);// 수정 요청 그림 안보이게 함
		}

 

설명 끝.

 

 

 

 

 

728x90
반응형

댓글