Java 문자열 반전 구현 코드
질문:
문자열, 예를 들어'I love china'를 주고 문자를 반전시켜'china love I'로 바꿉니다.
생각:
먼저 문자열을 첫 번째 문자와 마지막 문자, 두 번째 문자와 꼴찌 두 번째 문자로 바꾸면 우리는 모든 단어의 위치를 바꾸게 된다.그러나 우리는 단어 안의 문자의 순서는 바꿀 수 없다고 요구하기 때문에 우리는 모든 단어 안의 문자를 처음부터 끝까지 바꾸어야 한다.이렇게 하면 우리가 원하는 문자열을 얻을 수 있다.
구현:
여기에 두 번 모두 문자 반전을 사용하기 때문에 우리는 단독으로 swap 방법을 하나 써서 나온다.우리는 모든 단어를 돌려보낼 때 모든 단어의 시작점과 끝점을 기록해야 한다. 첫 번째 단어에 대해서는 시작점은 0, 마지막 단어에 대해서는 끝점은string이다.length() - 1.중간의 단어, 시작점과 끝점은 공백의 위치이다.
코드는 다음과 같습니다.
package test;
public class StringReverse{
public static void swap(char[] arr,int begin,int end){//
while(begin<end){
char temp=arr[begin];
arr[begin]=arr[end];
arr[end]=temp;
begin++;
end--;
}
}
public static String reverseWords(String st){
int begin=0;
char[] arr=st.toCharArray();
swap(arr,0,arr.length-1);
for(int i=1;i<arr.length;i++){ //
if(arr[i]==' '){
swap(arr,begin,i-1);
begin=i+1;
}
}
swap(arr,begin,arr.length-1); //
return new String(arr);
}
public static void main(String[] args){
String s="I love you !";
StringReverse sr=new StringReverse();
String st=sr.reverseWords(s);
System.out.println(st);
}
}
StringReverse.javaJDK 활용 방법:
public static void main(String[] args){
Scanner sc=new Scanner(System.in);
String str=sc.nextLine();
String[] sArr=str.split(" ");
List<String> list=new ArrayList<String>();
list=Arrays.asList(sArr);
Collections.reverse(list);
for(String word:list){
System.out.print(word+" ");
}
}
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.