面试编程题:反转单词

GA666666 2021-11-05 AM 22℃ 0条

编写一个区数,实现对字符串中单词反转的功能。
单词的定义是:完全由字母组成且由空格分开的字符串
反转的定义是:字母顺序前后反向
“abc”变为“cba”
例如下面的字符串:
"a hello1 abc world!"
“world!”不是单词(这两个字符串中包含非字母的字符1和所以不计为单词)
。反转过来的结果就是
“a hello1 cba world!"
要求:不使用任何strlen之类的库函数

import java.util.Collection;

import java.util.Iterator;
import java.util.LinkedList;
import java.util.Queue;
import java.util.Stack;
import java.util.*;
public class T1 {

public static void main(String[] args) {
    Scanner input = new Scanner(System.in);
    String str = input.nextLine();
    
    String[] array = str.split(" ");
    for(String s:array) {
        
        String newStr = isWord(s.replaceAll(" ", ""));
        System.out.print(newStr+" ");
    }
}

private static String isWord(String s) {
    int flag = 0;
    ArrayList array = new ArrayList<Character>();
    for(int i=0;i<s.length();i++) {
        char p = s.charAt(i);
        array.add(p);
        if(p>='A'&&p<='Z'||p>='a'&&p<='z') {
        }else {
            flag+=1;
        }    
    }
    
    if(flag==0) {
        s = "";
        Collections.reverse(array);
        for (Object object : array) {
            s += object.toString();
        }    
    }
    return s;
}

}

标签: none

非特殊说明,本博所有文章均为博主原创。

评论啦~