我正在开发一个程序,其中一个字符串包含一些在它们之间有换行符的单词:
Bob
Mohammed
Alfred
Moses
Tom
etc
我尝试做的是按字母顺序排序:
Alfred
Bob
Mohammed
Moses
Tom
...
据我所知,它只能在数组中完成,但是可以对字符串中的项进行排序吗?
答案 0 :(得分:2)
如果没有预先构建的功能来执行某些操作,那么只需为其创建自己的功能即可。这对于一般的编程至关重要。
记住字符串是什么:它是一个字符数组。在ActionScript 3.0中,这在语言的实际语法中并不完全正确,但您可以很容易地解决它。 String.charAt()
获取给定索引处的字符,并且您有一大堆操作来实际更改字符串中字符的顺序或数量。
话虽如此,因为您只是尝试对单个单词进行排序,并且由于它们已经是一对一的,您可以拆分换行符"\n"
,这将创建一个数组。然后你排序该数组。我不记得我脑子里的一个阵列是否会按字母顺序对字符串进行本地排序 - 你可能想要谷歌 - 但我认为它确实如此;如果没有,那么这只是回到第一段所说的内容。最后,你将数组加入同一个角色。
所以:
var arr:Array = nameString.split("\n");
// sort the different elements within arr here; each one is one name
nameString = arr.join("\n");
答案 1 :(得分:1)
您可以通过拆分换行符(\ n),然后对换行符进行排序,并通过使用相同的换行符连接元素将其转换回字符串来创建字符串中的数组:
var str:String = "Bob\nMohammed\nAlfred\nMoses\nTom";
var sortedString = str.split("\n").sort().join("\n"));