在Dart中反转字符串

在本文中,我们将介绍Google Dart语言中的字符串反转。

如何实施解决方案

以下是完整的Dart解决方案:

 void main(List<String> args) { 
     print( reverse(args[ 0 ]) );  }  String reverse(input) { 
     return input.split( '' ).reversed.join(); input.split( ).reversed.join();  } 

与C或Java一样,Dart使用函数名称main作为程序的入口点。 在这种情况下,我们不需要main返回任何数据,因此可以使用void类型。 在主函数的参数中,您会看到List<String> args ,它将把args定义为字符串列表,并使用参数形式将命令行输入的内容填充到该列表中,在这种情况下,这些参数只是用空格分隔的字符串。

例如:

 dart reverse-string.dart "Hello World" 

…将以[Hello World]填充args列表。

 dart reverse-string.dart "Hello" "World" 

…将以[Hello, World]填充args列表。

应当指出的是,在这个例子程序只传递给程序的第一个参数会被处理,因为我们只是通过添加索引位置经过第一个字符串列表中我们反向函数的输入[0]argsprint( reverse(args[0]) ); 线。 因此,在上面的第二个示例中,只有Hello会被撤消。

因此,让我们看一下反向函数。 我们使用String类型定义了该函数,因为它将返回反转的字符串以打印到控制台。 它会将参数input作为未定义的变量,但在此假设它是一个字符串值。

Dart:core库的String类包含split方法,该方法将根据给定的模式将一个字符串或字符串列表拆分为子字符串列表。 如果像我们的反向函数中那样该模式为空,则split将把输入分解为单个代码单位字符串(单个字符)。 因此带有空模式'' “ Hello”将返回[H,e,l,l,o]。

在将字符串拆分为带分隔符的字符后,我们将使用Dart:core库的List类中的reversed属性。 此属性仅获取一个列表,并以相反的顺序将其作为Iterable对象返回。 因此我们的示例列表[H,e,l,l,o]变为(o,l,l,e,H)。

就此示例程序而言,List和Iterable对象之间的差异很小。 两者实际上都是可迭代的。 在较高的层次上,列表将具有其他功能,例如对其元素的索引读/写访问和排序功能。 另一方面,通常在一次迭代操作(如for循环)期间将Iterables创建一次,然后将其作为只读数据进行访问。

Iterables和Lists都具有join方法,该方法将获取其元素并将它们连接为字符串。 我们在反向Iterable上使用join ,它将作为reverse函数的最终字符串值返回。 然后从main print功能将该值打印到控制台。

如何运行解决方案

要运行Dart字符串反向程序,请从GitHub下载dart文件,按照dart.dev所述安装Dart SDK,然后从命令行运行以下命令:

 dart reverse-string.dart "Hello, World!" 

或者,您可以将源代码复制到在线Dart解释器DartPad中 。 请记住,您将无法使用此方法访问命令行参数输入,因此您必须在代码中填充args变量。 例如:

 void main(List<String> args) { 
     args = [ 'Hello World' ]; 
     print( reverse(args[ 0 ]) );  }  String reverse(input) { 
     return input.split( '' ).reversed.join(); input.split( ).reversed.join();  } 

1个


参考文献

  1. P.Ryon(slashdoom),“在Dart中扭转弦乐”,Renegade编码器,2019年10月16日。 [线上]。 可用: https : //therenegadecoder.com/code/reverse-a-string-in-dart/ 。 [访问:2019年10月16日]。

示例程序TheRenegadeCoder维护。

翻译自: https://www.javacodegeeks.com/2019/11/reverse-a-string-in-dart.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值