【问题标题】:How to convert NSString to HEX String in Objective-C?如何在 Objective-C 中将 NSString 转换为 HEX 字符串?
【发布时间】:2012-02-13 08:01:42
【问题描述】:

我有一个 NSString 字符串,如“hello”。

现在我想将字符串转换为另一个显示十六进制字符串的 NSString 对象。该怎么做?

【问题讨论】:

  • 请在发布您的问题之前搜索 Stackoverflow。
  • 是的,我做到了,但我找不到合适的

标签: iphone


【解决方案1】:

嗯 - 除了可以在其他地方找到的显而易见的东西 - 像这样的东西怎么样:

    NSString * str = @"Hello World";

    NSString * hexStr = [NSString stringWithFormat:@"%@",
                         [NSData dataWithBytes:[str cStringUsingEncoding:NSUTF8StringEncoding] 
                                        length:strlen([str cStringUsingEncoding:NSUTF8StringEncoding])]];

    for(NSString * toRemove in [NSArray arrayWithObjects:@"<", @">", @" ", nil]) 
        hexStr = [hexStr stringByReplacingOccurrencesOfString:toRemove withString:@""];

    NSLog(@"%@", hexStr);

应该给出类似的输出

    48656c6c6f20576f726c64

优化这个留给读者练习:) :)

【讨论】:

  • 这对我来说太好了,你能指导我一些可以阅读这个过程的地方吗?
  • 我只是在开玩笑。更严重的是——你想看看其他例子;堆栈溢出充斥着他们'how-to-convert-an-nsstring-to-hex-values'是一个公平的开始)。其次 - 您想阅读 snprintf 和/或 stringWithFormat 并专门查看 '%x' 和 '%X' 格式化程序。他们取一个字节并将其转换为十六进制值。循环字符串是您的下一个挑战。但是您可以使用上面使用的“str cStringUsingEncoding..”将字符串转换为字节数组。逐个执行此操作,将十六进制添加到可变字符串,您应该得到一个正常的解决方案。
  • 您是说这是一个糟糕的解决方案吗?其他答案如何更好,请帮助
猜你喜欢
  • 2011-09-19
  • 2013-03-28
  • 1970-01-01
  • 1970-01-01
  • 2015-10-30
  • 2018-04-27
  • 2018-04-06
  • 2020-11-13
  • 2014-10-25
相关资源
最近更新 更多