Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/string/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/8/sorting/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
String 在下面的示例中,您将如何对字符串进行排序?_String_Sorting - Fatal编程技术网

String 在下面的示例中,您将如何对字符串进行排序?

String 在下面的示例中,您将如何对字符串进行排序?,string,sorting,String,Sorting,所以我有一个字符串列表 {test,testertest,testing,tester,testingtest} 我想按降序排列。。一般来说,如何对字符串进行排序?它是基于长度还是逐个字符??? 在上面的例子中会是怎样的??我想用降序的方式对它们进行排序。我想这样排序: 测试测试 测试 测试者测试 测试仪 测试我将按如下方式对其进行排序: 测试测试 测试 测试者测试 测试仪 测试假设C# 这并不总是一种理想的方法—您可以实现一个自定义比较器—但对于您所问的一个简单示例,这可能是最符合逻辑的方法#

所以我有一个字符串列表
{test,testertest,testing,tester,testingtest}
我想按降序排列。。一般来说,如何对字符串进行排序?它是基于长度还是逐个字符???

在上面的例子中会是怎样的??我想用降序的方式对它们进行排序。

我想这样排序:

测试测试
测试
测试者测试
测试仪

测试

我将按如下方式对其进行排序:

测试测试
测试
测试者测试
测试仪
测试

假设C#

这并不总是一种理想的方法—您可以实现一个自定义比较器—但对于您所问的一个简单示例,这可能是最符合逻辑的方法#


这并不总是一种理想的方法—您可以实现一个自定义比较器—但是对于您询问的一个简单示例,这可能是最符合逻辑的方法。

在Java中,您可以使用自然排序

java.util.Collections.sort(list);
飞机降落了

java.util.Collections.reverse(list);

或者创建自己的
比较器
来进行反向排序。

在Java中,您可以对

java.util.Collections.sort(list);
飞机降落了

java.util.Collections.reverse(list);

或者创建您自己的
比较器
来进行反向排序。

无论您使用何种语言,都有一个内置的
排序
函数,它执行

['test','tester','testertest','testing','testingtest']
以你为例。如果我想把它颠倒过来,我只想用Python说
reversed(sorted(myList))
,然后就完成了。如果你向右看,你会看到很多相关的问题需要一种更专业的排序方法(对于数字、日期等),但字典顺序适用于包含任何类型数据的字符串

下面是它的工作原理:

compare(string A, string B):
    if A and B are both non-empty:
        if A[0] == B[0]:
            // First letters are the same; compare by the rest
            return compare(A[1:], B[1:])
        else:
            // Compare the first letters by Unicode code point
            return compare(A[0], B[0])
    else:
        // They were equal till now; the shorter one shall be sorted first 
        return compare(length of A, length of B)

无论您使用哪种语言,都有一个内置的
sort
函数,它执行

['test','tester','testertest','testing','testingtest']
以你为例。如果我想把它颠倒过来,我只想用Python说
reversed(sorted(myList))
,然后就完成了。如果你向右看,你会看到很多相关的问题需要一种更专业的排序方法(对于数字、日期等),但字典顺序适用于包含任何类型数据的字符串

下面是它的工作原理:

compare(string A, string B):
    if A and B are both non-empty:
        if A[0] == B[0]:
            // First letters are the same; compare by the rest
            return compare(A[1:], B[1:])
        else:
            // Compare the first letters by Unicode code point
            return compare(A[0], B[0])
    else:
        // They were equal till now; the shorter one shall be sorted first 
        return compare(length of A, length of B)

在计算机科学中,字符串通常按字符进行排序,首选排序顺序为(对于标准英文字符集):

  • 首先是空字符
  • 接着是whitepsace
  • 后面是符号
  • 后跟数字字符,数字顺序明显
  • 按明显的字母顺序后跟字母字符
对字符进行排序时,通常小写字符位于大写字符之前

例如,如果我们要排序/比较:

测试ing
测试er

然后,“tester”将位于“testing”之前-字符串中的第一个不同字符是第五个字符,“e”位于“i”之前

同样,如果我们要比较:

测试
测试

然后在本例中,“test”将首先出现-字符串再次相同,直到第5个字符,其中字符串“test”结束(即没有字符),该字符变为任何字母数字字符之前

请注意,在处理数字时,这可能会产生一些反直觉的结果-例如,尝试对字符串“50”和“100”进行排序-您会发现“100”出现在“50”之前。为什么?因为字符串在字符1处不同,“5”在“1”之后

在几乎所有语言中,都有一个函数可以为您完成上述所有操作! 您应该使用该函数,而不是自己尝试对字符串排序!例如:

// C#
string[] myStrings = {"test","testertest","testing","tester","testingtest"};
Array.Sort(myStrings);

在计算机科学中,字符串通常按字符进行排序,首选排序顺序为(对于标准英文字符集):

  • 首先是空字符
  • 接着是whitepsace
  • 后面是符号
  • 后跟数字字符,数字顺序明显
  • 按明显的字母顺序后跟字母字符
对字符进行排序时,通常小写字符位于大写字符之前

例如,如果我们要排序/比较:

测试ing
测试er

然后,“tester”将位于“testing”之前-字符串中的第一个不同字符是第五个字符,“e”位于“i”之前

同样,如果我们要比较:

测试
测试

然后在本例中,“test”将首先出现-字符串再次相同,直到第5个字符,其中字符串“test”结束(即没有字符),该字符变为任何字母数字字符之前

请注意,在处理数字时,这可能会产生一些反直觉的结果-例如,尝试对字符串“50”和“100”进行排序-您会发现“100”出现在“50”之前。为什么?因为字符串在字符1处不同,“5”在“1”之后

在几乎所有语言中,都有一个函数可以为您完成上述所有操作! 您应该使用该函数,而不是自己尝试对字符串排序!例如:

// C#
string[] myStrings = {"test","testertest","testing","tester","testingtest"};
Array.Sort(myStrings);

当比较两个字符串以查看哪一个先排序时,通常会逐个字符进行比较。如果第一个位置的字符(例如示例中的
t
)相同,则移动到下一个字符。当两个字符不同时,该“可能”定义哪个字符串被视为“更大”

但是,根据所使用的语言环境和许多其他因素,比较的两个字符串中的后面字符可能会覆盖前面字符中的差异。例如,在一些校勘中,字母上的变音符号被认为是次要的。因此,后面字符中的主要差异可以覆盖次要差异