문자열 반복하는 방법
// for문 사용
for (int i = 0; i < my_string.length(); i++) {
System.out.print(my_string.charAt(i));
}
이렇게 되면 my_sring
의 문자 하나하나 찍힌다. -> charAt()
// 문자열을 `char[]` 어레이로 변환
char[] chars = my_string.toCharArray();
// 향상된 for 루프를 사용하여 `char[]` 어레이을 반복합니다.
for (char ch: chars) {
System.out.print(ch);
}
이러면 my_string
의 문자 하나하나가 요소로 배열에 저장됨 -> toCharArray()
StringBuilder
public class Main{
public static void main(String[] args) {
StringBuilder stringBuilder = new StringBuilder();
stringBuilder.append("문자열 ").append("연결");
// String str = stringBuilder;
// String에 StringBuilder를 그대로 넣을 순 없다. toString()을 붙여야 한다
String str = stringBuilder.toString();
// 두 println()은 같은 값을 출력한다
System.out.println(stringBuilder);
System.out.println(str);
}
}
StringBuilder 인스턴스에 append로 붙여repeat()
Arrays.fill()
및 System.arraycopy()
메서드를 호출 하여 새 문자열 만듦더 많은 정보는 요기로
https://codingdog.tistory.com/entry/java-string-repeat-메서드로-쉽게-문자열을-반복해-봅시다
처음에 그냥 postResponseDto에 뭐 어떻게 했더라..
postLike의 리스트를 멤버변수로 넣고 거기서 username을 빼왔던가 그렇게 했는데 역시나
{
"timestamp": "2023-01-03T06:25:04.251+00:00",
"status": 500,
"error": "Internal Server Error",
"trace": "java.lang.NullPointerException: Cannot invoke \"java.util.List.add(Object)\" because \"this.likedUsers\" is null\n\tat com.sparta.blog.dto.response.PostResponseDto.<init>(PostResponseDto.java:45)\n\tat com.sparta.blog.service.PostService.getAllBlogs(PostService.java:46)\n\tat java.base/jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method)\n\tat ...",
"message": "Cannot invoke \"java.util.List.add(Object)\" because \"this.likedUsers\" is null",
"path": "/api/posts"
}
2023-01-03T15:25:04.237+09:00 ERROR 14617 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this.likedUsers" is null] with root cause
java.lang.NullPointerException: Cannot invoke "java.util.List.add(Object)" because "this.likedUsers" is null
at com.sparta.blog.dto.response.PostResponseDto.<init>(PostResponseDto.java:45) ~[main/:na]
at com.sparta.blog.service.PostService.getAllBlogs(PostService.java:46) ~[main/:na]
...
dto 만들어서 하니까 아주 잘 되더라구요 comment 넣은 거처럼..ㅎㅎ
좋아요 기능을 만든 상태에서 커밋하고 깃허브의 내 브랜치에 푸시를 했는데..
다른 조원분이 스프링시큐리티를 하셔서 그걸 하시고 좋아요 기능을 넣어서 본인 브랜치에 푸시를 하시고.. 나는 그걸 클론을 했는데.. 이제 깃허브 origin의 내 브랜치에 안맞고.. 이렇게 저렿게 에러가..
깃허브를 사용할 때 메인브랜치의 뿌리를 잘 잡고 있어야함 그래서 다시 그 조원분의 브랜치를 메인으로 머지하고 그걸 클론받아서 다시 작업하고 내 브랜치로 나눴다.
디벨롭 브랜치로 작업을 하고 프로젝트가 완성되면 메인으로 합치는 방법으로 하는걸로..
협업할 때 브랜치는 깔끔한게 좋다고 하셨다.
브랜치에서 브랜치가 또 뻗어나오고 이러면 지저분해지니까
뿌리를 잘 어? 해야한다? 어? 느낌 그런 느낌
다시 메인 클론받아서 다시 코드 적는데 잘 되던 코드가 안되는 것이다.
2023-01-03T20:03:17.109+09:00 ERROR 18970 --- [nio-8080-exec-7] o.a.c.c.C.[.[.[/].[dispatcherServlet] : Servlet.service() for servlet [dispatcherServlet] in context with path [] threw exception [Request processing failed: org.springframework.http.converter.HttpMessageConversionException: Type definition error: [simple type, class com.sparta.blog.dto.response.PostLikeResponseDto]] with root cause
com.fasterxml.jackson.databind.exc.InvalidDefinitionException: No serializer found for class com.sparta.blog.dto.response.PostLikeResponseDto and no properties discovered to create BeanSerializer (to avoid exception, disable SerializationFeature.FAIL_ON_EMPTY_BEANS) (through reference chain: java.util.ArrayList[0]->com.sparta.blog.dto.response.PostResponseDto["likedUsers"]->java.util.ArrayList[0])
at com.fasterxml.jackson.databind.exc.InvalidDefinitionException.from(InvalidDefinitionException.java:77) ~[jackson-databind-2.14.1.jar:2.14.1]
at com.fasterxml.jackson.databind.SerializerProvider.reportBadDefinition(SerializerProvider.java:1306) ~[jackson-databind-2.14.1.jar:2.14.1]
at com.fasterxml.jackson.databind.DatabindContext.reportBadDefinition(DatabindContext.java:408) ~[jackson-databind-2.14.1.jar:2.14.1]
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.failForEmpty(UnknownSerializer.java:53) ~[jackson-databind-2.14.1.jar:2.14.1]
at com.fasterxml.jackson.databind.ser.impl.UnknownSerializer.serialize(UnknownSerializer.java:30) ~[jackson-databind-2.14.1.jar:2.14.1]
at com.fasterxml.jack...
No serializer found for class com.sparta.blog.dto.response.PostLikeResponseDto and no properties discovered to create BeanSerializer (...
예 디티오에 게터를 안해놨습니다.
reference
https://www.techiedelight.com/ko/iterate-over-characters-string-java/
https://onlyfor-me-blog.tistory.com/317
https://hardlearner.tistory.com/288
https://crazykim2.tistory.com/546