如何将第一个单词移到最后?

时间:2011-01-25 16:34:40

标签: java string

  

输入一行文字。请不要标点符号。
   Java是语言
  我把这句话改为:   是Java语言

这是一个例子,我只知道char方法,但我不知道如何将第一个单词移到最后。我可以使用哪种字符串方法?

3 个答案:

答案 0 :(得分:5)

怎么做:

  1. 使用分割句子 String.split();
  2. 从项目
  3. 创建列表
  4. 重新排序列表
  5. 使用空格
  6. 加入列表项

    在普通Java中实现:

    final String s = "Java Is The Language";
    final List<String> list =
        new ArrayList<String>(Arrays.asList(s.split("\\s+")));
    list.add(list.size() - 1, list.remove(0));
    final StringBuilder sb = new StringBuilder();
    for(final String word : list){
        if(sb.length() > 0){
            sb.append(' ');
        }
        sb.append(word);
    }
    System.out.println(sb.toString());
    

    使用Guava实施:

    final String s = "Java Is The Language";
    final List<String> list =
        Lists.newArrayList(Splitter
            .on(CharMatcher.WHITESPACE)
            .omitEmptyStrings()
            .split(s));
    list.add(list.size() - 1, list.remove(0));
    System.out.println(Joiner.on(' ').join(list));
    

答案 1 :(得分:2)

认为你的意思是Java(而不是JavaScript):

final String delimiter = " ";
String input = /* whatever */;
String[] tokens = input.split(delimiter);
String output = "";
for (int i = 1; i<tokens.length; i++)
{
    output += input[i] + delimiter;
}
output += tokens[0];
System.out.println(output);

顺便说一句,这段代码在JavaScript中看起来非常相似:

var delimiter = " ",
    input = /* whatever */,
    tokens = input.split(delimiter),
    output = [],
    len = tokens.length,
    i;

for (i = 1; i<len; i++)
{
    output.push(input[i]);
}
output.push(tokens[0]);
output = output.join(delimiter);
alert(output);

答案 2 :(得分:1)

子串,indexOf和长度。试试这些。