728x90
반응형

Java 5

Pattern과 Matcher로 문자열에서 원하는 값 뽑아내기

key1 = "value1", key2 = "value2", .... 이런 json도 아니고 요상한 형태로 날아오는 데이터를 파싱할 일이 생겼다. 처음엔 key-value 세트가 하나인줄 알고 단순히 따옴표 기준으로 substring을 했는데 알고보니 이게 콤마 기준으로 몇개나 될 지 랜덤하다고 한다. 흠.... 정규표현식이랑 별로 친하진 않지만 정규표현식을 써서 Pattern을 사용하게 되었다. (\w+)\s*=\s*"([^"]*)" 챗gpt와 regexr.com의 도움을 받아 이런 정규표현식이 나왔다. \w+ → (\w)문자가 (+)1개 이상 \s* → (\s)공백이 (*)0개 이상 = → 부등호 그 자체 " → 따옴표 그 자체 [^"]+ → (^") 따옴표 제외한 ([])문자가 (+) 1개 이상 이..

attempting to assign weaker access privilege (private, public)

접근 제한자가 맞지 않아서 나는 경고이다. public class MyServiceImpl implements MyService { @Override public String first(){ ... second(); } private void second(){ // 여기서 빨간줄이 뜸 : attempting to assign weaker access privilege ... } } 원래 public이었던 second()를 private으로 변경하려고 하니 인텔리제이가 빨간 줄을 띄워댄다. 하지만 나는 public 메서드에서 private 메서드를 호출하려고 하는 건데 왜 이러는걸까? 문제는 해당 클래스가 implements하고 있는 MyService에 있었다. public interface OCIServ..

자바 for문 돌리는 중 ConcurrentModificationException 에러

for(Stroe store : user.getStoreList()){ ... store.setActive(true); storeRepository.save(store); } 위와 같은 반복문을 돌리고 있는데 처음 한 번은 잘 돌더니 두번째에서 ConcurrentModificationException 에러가 발생했다. java.util.ConcurrentModificationException: null at java.base/java.util.ArrayList$Itr.checkForComodification(ArrayList.java:1043) ~[na:na] at java.base/java.util.ArrayList$Itr.next(ArrayList.java:997) ~[na:na] at org.hib..

쿠키 생성, 삭제

쿠키 만들기 @PostMapping("/test") public String test(HttpServletRequest request, HttpServletResponse response){ Cookie testCookie= new Cookie("testCK", "asdf"); testCookie.setPath("/"); testCookie.setMaxAge(60*60*24*15); //시간 0으로 하면 쿠키삭제 //시간 -1로 하면 쿠키 계속보존 // 만든 쿠키는 response에 담아서 보내줌 response.addCookie(testCookie); return "ok"; } 쿠키 지우기 @PostMapping("/test") public String test(HttpServletRequest req..

300x250
반응형