objective-c - 在两个 NSString 中保留换行符

标签 objective-c ios nsstring uitextview bing-api

在我的应用程序中,我翻译了 TextView 的内容并将其呈现给用户。

我的问题是:第一个字符串的格式很好,换行符在翻译过程中变松了。

识别的文本:Picture 1 翻译文本:Picture 2

我的问题是:如何以某种方式在与第一个 NSString 相同的位置附加相同数量的换行符,使其看起来像第一个字符串?

翻译:

[[MSBingTranslator sharedTranslator] initWithDelegate:self andTranslateText:txtView.text fromLan:detectedLanguage toLan:@"de"];

- (void) MSBingTranslator:(MSBingTranslator *)cls translatedText:(NSString *) text {
    txtView.text = text;
}

- (void) MSBingTranslator:(MSBingTranslator *)cls detectedLanguage:(NSString *)lan {
    detectedLanguage = lan;
}

- (void) MSBingTranslator:(MSBingTranslator *)cls failedWithError:(NSString *) error {
}

我正在使用 https://github.com/moeseth/Bing-Translator对于翻译,一个围绕 Microsoft 的 Bing Translator 的 objective-c 包装器。

最佳答案

我不认为你真的能做到这一点,主要是因为当你进行翻译时,你经常会得到与开始时不同的单词数。确定哪些词/组与前/后字符串中的哪些词匹配真的非常困难(除非你一次翻译一个词,但不会翻译相同的词)。如果不是这样,您可以只在翻译后的字符串上使用 componentsSeparatedByCharactersInSet 并遍历旧数组以查找空字符串以确定在新数组中的何处添加新行。

顺便说一下,除了创建数组然后将其写入可变字符串之外,您还可以使用:

NSMutableString *mString = [txtView.text mutableCopy];

(除非您将数组用于其他用途)

关于objective-c - 在两个 NSString 中保留换行符,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10268421/

相关文章:

objective-c - Objective C 中的全局变量

objective-c - 设置 NSDateComponents 会导致不正确的 NSDate

ios - 如何将子字符串附加到主字符串?

objective-c - 从 NSString 中删除前缀

ios - 为什么不设置此 UISlider 的值属性更新其位置?

ios - 获取 NSString 中所有大写字母的 NSRange 对象数组的最快方法?

objective-c - IOS8:AVFoundation 相机卡住

ios - 如何在 iOS 中现有的 cocoa-pod 集中添加新库

objective-c - NSMutableArray 和副本

ios - Swift:类型 'ViewController' 不符合协议(protocol) 'UIPageViewControllerDataSource'