【问题标题】:Remove first space if string contains exactly 2 spaces如果字符串正好包含 2 个空格,则删除第一个空格
【发布时间】:2016-06-26 12:24:26
【问题描述】:

如果字符串中有 2 个空格,我在尝试删除字符串的第一个空格时遇到问题。例如它应该将“Fully Functional Method”变成“FullyFunctional Method”,但“Functional Method”不应该改变,因为它只有1个空格。如果字符串包含 2 个空格,我真的想不出删除第一个空格的方法。

【问题讨论】:

  • 哪种语言?

标签: string space spaces


【解决方案1】:

我不知道你到底想做什么,但你可以搜索RegExp 和 String.replace() 来替换字符串中的一些内容。 这是另一个了解Characters, metacharacters, and metasequences的链接。

var myPattern1:RegExp = /  /g;  
var str1:String = "This  is  a  string  that  contains  double spaces.";
trace(str1.replace(myPattern1, " "));
//this replaces all "  " by " "...
//outputs : This is a string that contains double spaces.

或者在你的情况下(我想)是这样的

var myPattern2:RegExp = / /;  
var str2:String = "Fully Functional Method";
trace(str2.replace(myPattern2, ""));
//If you omit the g, only the first space will be replaced by ""
//outputs : FullyFunctional Method

使用 RegExp 可以做的事情太多了,我不会在这里解释... 只需在 Adob​​e 网站上查看... 这是处理字符串的一种快速有效的方法。 我希望这将有所帮助。 由于您检查了这些链接,您会明白我的示例是纯粹的粗略,应该修改为具有全功能方法。 :D

【讨论】:

  • AMO, RegExp 这是处理字符串的最佳方式,避免了可能导致代码“减速”的冗长且不必要的循环。特别是如果您处理大型字符串。 RegExp 类乍一看有点令人惊讶,但是当您熟悉语法时,这是处理字符串的最佳和更有效的方法。我不会拒绝其他人的答案,但我认为你应该避免不必要的循环......:\保持简单:D
  • @Daniel Holler 你没有说它是无用的还是有用的......你有没有尝试检查 Regexp 文档?
【解决方案2】:

对字符串进行线性扫描。计算空格数并记录第一个空格的索引,如果有的话。如果有两个空格,则返回一个字符串,该字符串是最多但不包括第一个空格的字符和第一个空格之后的字符的串联。

保持简单。可以使用正则表达式解决您的问题,但请记住,在未排序集中查找特定字符的最坏情况时间复杂度始终为 O(N),因此不会更快。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多