黑马程序员技术交流社区
标题:
关于字符串的一道题
[打印本页]
作者:
snnairow
时间:
2015-11-14 21:59
标题:
关于字符串的一道题
键盘录入一段英文,将其中的单词以反序输出。
例如:
“I love heima” →"I evol amieh"
作者:
王春生
时间:
2015-11-14 21:59
/**
* 题目:
* 接收用户输入的一句英文,将其中的单词以反序输出。
*
* 例如:“I love you” →"I evol uoy"
* 思路:
* 先创建Scanner对象
* 用string接收
* 再用String中的split将字符串分割,存在String[]数组中
*
*
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
String s1 =sc.nextLine();
String[] arr1 = s1.split("\\s");
//StringBuilder[] arr2 = new StringBuilder[arr1.length];
StringBuilder sb2 = new StringBuilder();
for (int i = 0; i < arr1.length; i++) {
StringBuilder sb =new StringBuilder(arr1[i]);
sb.reverse();
if(i==arr1.length) {
sb2 .append(sb);
}else {
sb2.append(sb).append(" ");
}
}
System.out.println(sb2);
}
作者:
小布丁当
时间:
2015-11-14 22:15
public class Test4 { public static void main(String args[]){ Scanner scanner=new Scanner(System.in); String str=scanner.next(); StringBuffer sb=new StringBuffer(str); StringBuffer result=sb.reverse(); System.out.println(result.toString()); } }
作者:
小布丁当
时间:
2015-11-14 22:18
public class Test4 {
public static void main(String args[]){
Scanner scanner=new Scanner(System.in);
String str=scanner.next();
StringBuffer sb=new StringBuffer(str);
StringBuffer result=sb.reverse();
System.out.println(result.toString());
}
}
作者:
影明
时间:
2015-11-14 22:22
import java.util.Scanner;
public class Test_03 {
/**
* @param args
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String s = sc.nextLine();
String[] arr = s.split(" ");
StringBuffer sb = new StringBuffer();
for (int i = 0; i < arr.length; i++) {
if (i == arr.length - 1) {
sb = sb.append(new StringBuffer(arr[i]).reverse());
} else {
sb = sb.append(new StringBuffer(arr[i]).reverse()).append(" ");
}
}
System.out.println(sb);
}
}
作者:
flyingwind
时间:
2015-11-14 22:26
import java.util.Scanner;
public class InvertedSequence {
/**
* @param args
*/
public static void main(String[] args) {
Scanner scn=new Scanner(System.in);
System.out.println("Please input a sentence: ");
String line=scn.nextLine();
String result=stringInverted(line);
System.out.println(result);
}
public static String stringInverted(String ste) {
String[] ar=ste.split("\\s"); //按空格切割字符串
StringBuffer sb=new StringBuffer(); //用来拼接反转好的单词
for(int i=0;i<ar.length; i++) {
ar[i]=new StringBuffer(ar[i]).reverse().toString();
sb.append(ar[i]);
if (ar.length-1!=i) { // 最后一个单词不用跟空格
sb.append(" ");
}
}
return sb.toString();
}
}
复制代码
作者:
black.horse
时间:
2015-11-15 01:14
import java.util.Scanner;
public class Test {
public static void main(String[] args) {
String[] arr = new String[100];
Scanner sc = new Scanner(System.in);
System.out.println("输入并回车");
for(int i=0;;i++)
if (sc.hasNext()) {
arr[i] = sc.next();
char brr[]=arr[i].toCharArray();
fanzhuan(brr);
}
else
{
break;
}
}
public static void fanzhuan(char[] arr)
{
for (int i = arr.length-1; i >=0 ; i--) {
System.out.print(arr[i]);
}
System.out.print(" ");
}
}
作者:
多肉的IT兔子
时间:
2015-11-15 02:23
一楼二楼有问题,明显第一个字母不是倒序
作者:
再续啸傲
时间:
2015-11-15 19:11
get and looklook
作者:
geqiandesiyu
时间:
2015-11-15 20:13
/*
* 字符串abcdefg,要求按逆序输出为gfedcba
*/
public class ReverseSort {
/**
* @param args
*/
public static void main(String[] args) {
// TODO Auto-generated method stub
String str = "abcdefg";
String sortedStr=reverseSort(str);
System.out.println(sortedStr);
}
public static String reverseSort(String str){
String str2=null;
for(int i=str.length()-1;i>-1;i--)
{
str2+=String.valueOf(str.charAt(i));
}
return str2;
}
}
输出结果是gfedcba
作者:
许佳鑫
时间:
2015-11-15 20:39
悬赏很高,看看
作者:
陈光慧
时间:
2015-11-15 21:25
其实最主要的还是思路:按照空格拆分单词成单词数组 循环数组的每个元素,有个reverse的方法可以试下,我之前做过,代码不是主要,思路最重要,有机会好好交流交流。
作者:
流浪剑客丶
时间:
2015-11-15 21:28
[quote]
snnairow 发表于 2015-11-14 21:59
键盘录入一段英文,将其中的单词以反序输出。
例如:
“I love heima” →
可以先把前面的这句话定义成字符串,然后转成数组,再用反转方法就好啦,思路最重要,望采纳,收集黑马币中
作者:
周亚飞
时间:
2015-11-15 22:14
import java.util.Scanner;
public class Test2 {
/*
需求:
键盘录入字符串 "i love heima"
控制台输出字符串 "i evol amieh"
思路:
1.找到字符串str中的第一个空格的索引,截取第一个单词subStr,并把空格后面的字符串赋给str,使用循环。
2.单词subStr转成字符数组,数组逆序后追加到StringBuffer容器。
*/
public static void main(String[] args) {
Scanner sc = new Scanner(System.in);
StringBuffer sb = new StringBuffer(); //每个单词逆序后追加到sb中
System.out.println("输入字符串");
String str = sc.nextLine(); //str接收键盘录入的字符串
while (true) {
int index; //用于记录str中第一个空格的索引
String subStr; //用于记录截取的单词
if ((index = str.indexOf(' ', 0)) != -1) { //str中存在空格,记录第一个空格的索引
subStr = str.substring(0, index); //截取单词
char[] arr = subStr.toCharArray(); //把单词字符串转成字符数组
reverse(arr); //调用数组逆序方法,字符数组逆序
sb.append(arr).append(" "); //逆序后的字符数组追加到sb中,此处追加一个空格
str = str.substring(index + 1); //截取单词后把空格后面的字符串赋给str
} else {
char[] arr = str.toCharArray(); //当str中没有空格时(最后一个单词)就不要再截取了
reverse(arr);
sb.append(arr); //此处不向sb中追加空格
break; //最后一个单词完成跳出循环
}
}
System.out.println(sb); //打印结果
}
//数组逆序方法
public static void reverse(char[] arr) {
for (int i = 0; i < arr.length / 2; i++) {
char temp = arr[i];
arr[i] = arr[arr.length - 1 - i];
arr[arr.length - 1 - i] = temp;
}
}
}
作者:
潘俊
时间:
2015-11-15 22:54
我就是来看看~~
作者:
韩三少
时间:
2015-11-16 00:05
都是人才啊
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2