Java 문자열 반전 구현 코드

1918 단어 Java문자열 반전
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.java
JDK 활용 방법:

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+" "); 
    } 

} 
읽어주셔서 감사합니다. 여러분에게 도움이 되었으면 좋겠습니다. 본 사이트에 대한 지지에 감사드립니다!

좋은 웹페이지 즐겨찾기