算法与数据结构面试题(9)-颠倒字符串

题目


翻转句子中单词的顺序。
题目:输入一个英文句子,翻转句子中单词的顺序,但单词内字符的顺序不变。
句子中单词以空格符隔开。为简单起见,标点符号和普通字母一样处理。
例如输入“I am a student.”,则输出“student. a am I”。


代码


public class Problem10 {

	public void invertString(String str) {
		if (str == null || str.length() == 0) {
			System.out.println("字符串为null或者大小为0");
			// throw new NullPointerException("字符串没有初始化");
			return;
		}
		// 判断是否含有空格
		if (!str.contains(" ")) {
			System.out.println("该字符串只是一个单词,无法拆分");
			return;
		}

		String[] arrary = str.split("\\s+");
		for (int i = arrary.length - 1; i >= 0; i--) {
			System.out.print(arrary[i] + " ");
		}

	}

	public static void main(String[] args) {
		Problem10 problem = new Problem10();
		String[] strArray = { null, "", "ssdfd", "I am a student." };
		for (int i = 0; i < strArray.length; i++) {
			problem.invertString(strArray[i]);
		}

	}

}

输出


字符串为null或者大小为0
字符串为null或者大小为0
该字符串只是一个单词,无法拆分
student. a am I 


你可能感兴趣的:(数据结构,算法)