如何将字符串解析为单个单词并在Java中对它们进行排序?

时间:2012-01-27 17:07:50

标签: java

我正在尝试让用户输入一行文本,然后才能重新排序。我不明白如何能够从输入文本中分离每个单词,以便能够使用子字符串和重新排序。我不知道如何使用数组,只有两周的编程经验。

3 个答案:

答案 0 :(得分:3)

  

我不明白如何能够从输入文本中分离每个单词

如果inputStr是您的输入字符串,则可以使用

String[] words = inputStr.split("\\s+");

这将创建一个名为words的数组,并使用输入字符串的(空格分隔的)单词填充它。

String.split()解释为here。如果您没有遇到正则表达式,"\\s+"只是表示“一个或多个空格”。

答案 1 :(得分:0)

如果您指的是JavaScript而不是Java,则语法与JavaScript

略有不同
var words = inputStr.replace(/\s+/g, ' ').split(' ');

其中inputStr.replace(/\s+/g, ' ')用1个空格替换1个以上的空格,split(' ')将空格分隔的字符串拆分为数组。

然后,您可以根据需要重新排序数组。

您希望将重新排序的数组再次转换为字符串,请使用:

var newString = words.join(' ');

答案 2 :(得分:0)

aix建议使用正则表达式进行拆分,将解析后的字符串解析为一个在javascript中有排序方法的数组。

s = "zero apple watchdog hammer";
s.split( " " ).sort();

...应该产生数组...

["apple", "hammer", "watchdog", "zero"]

它在Java中没有太大的不同......

String s = "zero apple watchdog hammer";
String[] splits = s.split( " " );
Arrays.sort( splits );
System.out.println( String.format( "splits: %s", Arrays.toString( splits ) ) );

当然,可以改进传递给split的正则表达式来处理所有类型的空格。我将把它作为读者的练习。