- html - 出于某种原因,IE8 对我的 Sass 文件中继承的 html5 CSS 不友好?
- JMeter 在响应断言中使用 span 标签的问题
- html - 在 :hover and :active? 上具有不同效果的 CSS 动画
- html - 相对于居中的 html 内容固定的 CSS 重复背景?
我正在为 iOS 应用程序使用 Swift 2.0/Xcode 7.0。我已经构建了一个日语 IME 来将罗马字符转换为对应的日语。例如:
我的问题是当我尝试删除日文字符时。如果文本字段中只有一个字符,删除键/功能将按预期工作。但是,如果有多个字符,当我尝试删除该字符时,我会在以下代码中收到 can not increment endIndex
错误。
var imeInputLength: Int = 0
let currentInputValue: String = txtfldYourResponse.text!.lowercaseString
if(currentInputValue.characters.count==0) {
imeInputLength = 0
}
let inputStringToKeep: String = currentInputValue.substringWithRange(
Range<String.Index>(start: currentInputValue.startIndex.advancedBy(imeInputLength),
end: currentInputValue.endIndex))
let imeStringToKeep: String = currentInputValue.substringWithRange(
Range<String.Index>(start: currentInputValue.startIndex,
end: currentInputValue.startIndex.advancedBy(imeInputLength)))
if let imeValueDC = JIMEDC[inputStringToKeep] {
txtfldYourResponse.text = imeStringToKeep + imeValueDC
imeInputLength = (txtfldYourResponse.text?.characters.count)!-1
}
if let imeValue = JIME[inputStringToKeep] {
txtfldYourResponse.text = imeStringToKeep + imeValue
imeInputLength = txtfldYourResponse.text!.characters.count
}
currentInputValue
是来自文本字段的文本。
imeInputLength
是一个 int
(初始值 = 0),在找到匹配项后按文本字段中的总字符数递增。
JIMEDC
和 JIME
是处理从罗马字符到日文字符转换的键/值对。
我在代码运行之前将 endIndex
打印到控制台。它似乎按预期递增/递减,但上面的代码块因递增错误而失败。
几周来我一直在努力反对这个问题,但没有任何进展。
编辑:澄清了 imeInputLength
的处理并添加了额外的代码以进行澄清。
最佳答案
与 l'L'l 的边谈让我走上了正轨。我对错误消息 can not increment endIndex
感到困惑。实际上,我在我的范围内制造了一个越界错误。
当按下退格键时,我并没有修改 imeInputLength
来反射(reflect)输入字符串的新长度。结果,我的 advanceBy
金额大于更新后的 endIndex
值。 Swift 将此作为 can not increment endIndex
抛出,但原因是 startIndex
现在大于 endIndex
。
我通过首先检查以下内容解决了这个问题:
if(imeInputLength > currentInputValue.characters.count) {
print("You must have pressed backspace")
imeInputLength = txtfldYourResponse.text!.characters.count
} else {
let inputStringToKeep:
...
}
如果按下退格键,我需要查看 imeInputLength
值是否大于输入字段的当前字符数。 imeInputLength
最终变大的唯一用例是使用退格键删除日文字符时。当捕获到这种情况时,我将 imeInputLength
重置为当前字符数并退出例程。
我很高兴地说,我所有的用例现在都测试呈阳性!
关于ios - 删除日文字符时 Swift "can not increment endIndex",我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32858509/
我尝试过下面的代码,但只有“?”打印而不是 unicode 字符。 public static void main(String s[]){ char i1 = 0x0ABF; char i2
我有不同语言的字符串,主要是日语,当我尝试将它们打印为字符串时,它们显示得很好。但是,当我将其中许多添加到 python 列表中,然后打印出列表时,它们显示为如下文本:xe9 例如: string1
我目前正在开发一个包含日语和英语字符串的 mysql 数据库。 当前排序规则:utf8_general_ci。 我必须使用 LIKE %'japaneseWordHere'% 查询字符串中的日语单词。
目前,我正在使用这个正则表达式来检测日语标签和英语标签。\B([##][·・ー_0-90-9a-zA-Za-zA-Zぁ-んァ-ン一-龠]{1,24})(?=\W|$)规则是: Hashtag must
这对我来说似乎很难。我有将 CString 打印到文本文件的代码,但该值恰好是 Unicode(日语)。一旦命中此行,它下面的任何内容都不会被打印。 知道如何在文本文件中打印日语文本吗? #defin
我需要知道包含日文/中文字符的 unicode 字符串中有多少个可显示字符。 使问题变得非常明显的示例代码: # -*- coding: UTF-8 -*- str = '\xe7\x9d\xa1\x
请在 IE 中检查以下 js fiddle(我使用的是 10) http://jsfiddle.net/bF65u/1/ .inlineCol2 { width: 50%; } .op
我想向站点发送一个发布请求。下面的 python 代码工作正常。 # -*- encoding=utf-8 -*- import urllib, urllib2 url = "http://xxx.c
这个问题在这里已经有了答案: Unicode string literals in VBA (3 个回答) How to type Unicode currency character in Visu
我正在考虑使用 DejaVu 字体为 CJK 脚本创建 [Ruby-like][1] 字体。 但是我不确定,是否 DejaVu 提供/支持 CJK 字形? 否则,您是否推荐了另一种可重复使用的免费/开
我有一个图像目录,每个图像的名称中都有一个汉字。我正在尝试列出所有图像,在列表上循环,读取并显示每个图像。 图片路径类似于https://github.com/sirius-ai/LPRNet_Pyt
我想在 UITextView 中设置斜体字体样式,但斜体字体在 iOS 7 上不适用于中文/日文/韩文。有人能帮忙吗? 最佳答案 因为iOS上没有斜体中文字体,需要使用affine transform
如果我这样做: import pandas as pd pd.DataFrame( data=nr.random( (2,2) ), columns=[u'é',u'日本'] ).plot() 结果:
我希望能够识别中文、日文和韩文的书面字符,既可以作为一般语言,也可以作为分割语言。这些是原因: 将 CJK 识别为一个通用组:我正在制作一个垂直脚本蒙古语 TextView。为此,我需要将文本行旋转
我正在尝试对我正在处理的几个 URL 中的非 ASCII 字符进行 URL 转义(百分比编码)。我正在使用一个 Flash 应用程序,该应用程序从这些 URL 加载图像和声音剪辑等资源。由于文件名可以
我正在使用 PyPDF2 在 python 中读取 PDF 文件。虽然它适用于英语和欧洲语言(英语字母表),但图书馆无法阅读日语和中文等亚洲语言。我尝试了 encode('utf-8')、decode
我在 VBA 用户窗体中创建了一个 ListView 。 Listview 显示用户在 3 个文本框中插入的数据(单击“保存”按钮后)。用户可以在希伯来语中插入文本,但在 ListView 中,文本显
我有一个由 1 byte slice 假名组成的列表名称(示例 `゙),我通过 2 byte slice 假名 ji 进行搜索,但结果为零。你知道如何将搜索文本从 2 字节的假名转换为 1 字节吗?请
我的 iOS 应用在不同的本地化版本(en_US、en_AU、ja_JP 等)中显示不同的货币(USD、JPY、AUD、EUR) ). 对于日语地区/语言(两者都在我的设备上设置),如果我: NSNu
我们注意到,在 targetSdkVersion 28 期间,EditText 将在输入非英语 unicode(如中文、日语等)后倾向于“稍微下推”该行. 当代码为 targetSdkVersion
我是一名优秀的程序员,十分优秀!