java 输入一句英文句子,翻转句子中单词的顺序,单词内字符的顺序也要改变,句子中单词以空格符隔开.
例如如果输入时Hello,pleasefixme!,输出就应该是!mefixplease,Hello...
例如如果输入时Hello,please fix me!,输出就应该是!me fix please,Hello
展开
5个回答
展开全部
String q = "Hello,please fix me!";
Stack<String> stack = new Stack<String>();
int l = 0;
for (int i = 0; i < q.length(); i++) {
switch(q.charAt(i)) {
case '!':
case ',':
case ' ': {
stack.push(q.substring(l, i));
l = i + 1;
stack.push(q.substring(i, l));
}
}
}
if (l < q.length()) stack.push(q.substring(l));
while (!stack.isEmpty())
System.out.print(stack.pop());
Stack<String> stack = new Stack<String>();
int l = 0;
for (int i = 0; i < q.length(); i++) {
switch(q.charAt(i)) {
case '!':
case ',':
case ' ': {
stack.push(q.substring(l, i));
l = i + 1;
stack.push(q.substring(i, l));
}
}
}
if (l < q.length()) stack.push(q.substring(l));
while (!stack.isEmpty())
System.out.print(stack.pop());
展开全部
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String q = "Hello , please fix me !";
String[] aa=(String[]) q.split(" ");
for(int i = aa.length ;i>0 ;i--){
System.out.print(aa[i-1]+" ");
}
}
}
输出结果 ! me fix please , Hello
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String q = "Hello , please fix me !";
String[] aa=(String[]) q.split(" ");
for(int i = aa.length ;i>0 ;i--){
System.out.print(aa[i-1]+" ");
}
}
}
输出结果 ! me fix please , Hello
追问
题目的字符和单词间是没空格的 还是要谢谢你哈
追答
import java.util.HashMap;
import java.util.Map;
public class test {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String q = "Hello, please fix me!";
String[] aa=(String[]) q.split(" ");
Map ll = new HashMap();
ll.put("!", "!");
ll.put(",", ",");
for(int i = aa.length ;i>0 ;i--){
String w = aa[i-1];
String e = w.substring(aa[i-1].length()-1);
if (ll.containsKey(e)){
w=e+w.substring(0, aa[i-1].length()-1);
}
System.out.print(w+" ");
}
}
}
符合要求了 给分吧 呵呵
本回答被提问者采纳
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
抛开java语法和函数,所有语言可以通用的算法是:
1.建一个单词字符串 strWord
2.建一个单词标点栈
3.逐字符读取,判断是否是字母(ascii或其它方法),如果是字母放到strWord中,如果读取到空格或标点符号且strWord非空则把strWord入栈,在把空格或标点入栈,然后清空strWord准备接受下一个字符
最后出栈
1.建一个单词字符串 strWord
2.建一个单词标点栈
3.逐字符读取,判断是否是字母(ascii或其它方法),如果是字母放到strWord中,如果读取到空格或标点符号且strWord非空则把strWord入栈,在把空格或标点入栈,然后清空strWord准备接受下一个字符
最后出栈
追问
对栈操作不是很熟悉 能把代码麻烦贴出来吗
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
public static String fanZhuan(String s ) {
String[] ss = s.split(" ");
String new_s = "";
for (int i=ss.length-1;i>-1;i--) {
new_s += ss[i]+" ";
}
return new_s;
}
String[] ss = s.split(" ");
String new_s = "";
for (int i=ss.length-1;i>-1;i--) {
new_s += ss[i]+" ";
}
return new_s;
}
追问
这时候的输出符号和普通字符放在了一块 你得到的结果是me! fix please Hello,
追答
嗯嗯 是的呢 因为是用空格分割的吧 就把那些输出符号也默认和单词放在一起了 这个方法用的时候最好要都打上空格 就是单词和标点之间也要加上空格
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
使用Java中的charAt()方法。
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询