gpt4 book ai didi

cocoa - NSMutableString stringWithFormat

转载 作者:行者123 更新时间:2023-12-03 17:44:13 24 4
gpt4 key购买 nike

我有为 MD5 munge 准备消息的 java 代码

private static char[] jimsCopyRight = {

'C'、'o'、'p'、'y'、'r'、'i'、'g'、'h'、 't', ':', ' ', 0xa9, ' '};

用于

StringBuffer message = new StringBuffer();

message.append(name.toLowerCase()); message.append(new String(jimsCopyRight));

当我使用

打印消息时
for(int i = 0; i < message.length(); i++){

System.out.println("i = "+ i + "char "+ message.substring(i, i + 1) + "charAT "+ message.charAt(i)); }

我得到 i = 14 char\251 charAT\251 并且 message.toString 是 jimCopyright:\251

我需要构造一个具有相同字符的 NSMutableString。

我尝试过的事情

wDevCopyright = [NSString stringWithFormat:@"jimCopyright: %c ", 0xa9];
for(int i = 0; i < [message length]; i++){
NSLog(@"i = %d char %c %d", i, [message characterAtIndex:i], [message characterAtIndex:i]);
}

这给了我 i = 14 char © 169

任何使 NSMutableString 与 StringBuffer 相同的帮助将不胜感激。

<小时/>

问题是,当我合并 MD5 中的两个字符串时,添加 0xa9 后会得到不同的结果。这些打印品只是为了看一下琴弦。

我认为这与 Java 中的 char[] 和 NSMutableString 的构造有关。我不相信它们有相同的值(value)观。

我有一些 C 代码,它声明版权为

#define jimsCopyRight  "Copyright: � "

版权的Java MD5和C MD5是相同的。

最佳答案

版权符号就是你想要的,对吗?根据你的问题,这就是你得到的。那么问题出在哪里呢?

(这就是为什么魔数(Magic Number)不好。我无法仅从您的代码中判断您想要什么编码0xa9。)

如果您想知道为什么它显示 169 而不是 251,那是因为 Java 打印出八进制(基数 8)字符转义序列,而 C 标准库 Core Foundation 中的 %d ,并且 Foundation 将值打印为十进制(以 10 为底)。 \251 不是第 251 个字符。使用 %o 将值打印为八进制,或使用 %x 将其打印为十六进制(基数 16)。或者,使用 Calculator.app 的编程模式将 251 从八进制转换为十进制。

顺便说一句,您可以使用 %@ 格式序列和 NSUserName 函数将您的用户名插入到字符串中,就像在 Java 代码中一样。无需对其进行硬编码。

关于cocoa - NSMutableString stringWithFormat,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/4235346/

24 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com