我正在尝试让用户输入一行文本,然后才能重新排序。我不明白如何能够从输入文本中分离每个单词,以便能够使用子字符串和重新排序。我不知道如何使用数组,只有两周的编程经验。
答案 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的正则表达式来处理所有类型的空格。我将把它作为读者的练习。