【问题标题】:Objective-c: string length with spaces includedObjective-c:包含空格的字符串长度
【发布时间】:2012-01-12 03:30:25
【问题描述】:

我正在尝试获取包含空格的字符串中的字符数。 如果我有一个字符串说:“你好,你好吗?” 我运行这段代码:

 NSUInteger newLength = [myString length];

它返回 15。 但是,当您包含空格时,有 18 个字符......那么我应该使用什么代码?或者我是否将不得不运行代码用一些字符(如星号)替换所有空格,计算字符数,然后将字符串设置回原来的字符串。这不会太糟糕,除非我必须多次这样做,所以我正在寻找一种更快的方法。谢谢!

【问题讨论】:

  • [@"hello how are you?" length] 返回 18
  • 查看您是否遗漏了原件中的“how”“are”“you”中的任何一个字符串 ;-)
  • length 计算字符串中的空格。仔细检查您的代码。
  • 它不工作......我注释掉了所有我必须用“omw”替换“on my way”之类的代码,它开始工作了。我在没有 /* 注释标记 */ 的情况下将该代码放回原处,它又开始工作了! :o 一定是 Xcode 故障..

标签: iphone xcode string spaces


【解决方案1】:

您能发布您的字符串创建代码吗?我觉得很奇怪。但是 NSString 长度文档确实说:

接收器中的 Unicode 字符数。

在任何情况下,您都可以获取 c 字符串并使用 strlen,也许这会有所帮助。

size_t length = strlen([myString cStringUsingEncoding:NSUTF8StringEncoding]);

【讨论】:

    【解决方案2】:

    你用它来获取字符串的长度,包括空格:

    NSUInteger newLength = [myString length];
    

    (即你不应该返回15,而是18)

    【讨论】:

      【解决方案3】:

      来自Documentation..

      [string length];   
      

      返回接收器中的 Unicode 字符数。 Space 也是一个 unicode 字符

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2013-05-12
        • 2012-04-23
        • 1970-01-01
        • 1970-01-01
        • 2020-10-15
        • 1970-01-01
        • 2011-03-29
        • 1970-01-01
        相关资源
        最近更新 更多