java - NSRange : 从 Objective-C 到 Java
问题描述
我必须翻译这个基于 Objective-C 的代码
for (i = (int)[annots Size]-1; i>=0; --i) {
PTField *field = [[PTField alloc] initWithField_dict: [annots GetAt: i]];
NSString *nameField = [field GetName];
NSRange range = [nameField rangeOfString:@"_FIXPDFBOX"];
if ( range.location != NSNotFound ) {
NSRange sub = NSMakeRange( 0, range.location );
[field Rename:[nameField substringWithRange:sub]];
}
}
进入Java。这是我所做的:
for (i = annots.size() - 1; i >= 0; --i) {
Field field = new Field(annots.getAt((int) i));
String nameField = field.getName();
int range = nameField.indexOf("_FIXPDFBOX");
if (range != -1) {
int sub = range;
field.rename(nameField.substring(sub));
}
}
(PTField 是 Java 中的字段)。但我认为我的问题是在将 NSRange 翻译成 Java 时。你能帮我翻译一下吗?
非常感谢 :-)
解决方案
你可以这样做:
for (i = annots.size() - 1; i >= 0; --i) {
Field field = new Field(annots.getAt((int) i));
String nameField = field.getName();
int range = nameField.indexOf("_FIXPDFBOX");
int size = "_FIXPDFBOX".length();
if (range != -1) {
int sub = range;
field.rename(nameField.substring(sub, sub+size));
}
}
推荐阅读
- javascript - 滚动页面导航栏活动删除活动类
- microsoft-graph-api - 用于获取通道线程的 Microsoft Teams REST API
- r - 向量列表和序列填充
- maven - 我们可以在 selenium 中添加驱动程序作为 maven depandancy
- iframe - Rocket.Chat 自动登录
- php - 如何将父菜单和子菜单类设置为活动
- angularjs - 从外部 javascript 正确访问 django 静态文件
- html - 本地字体仅在 iPhone 和我的同事 Mac 上不显示
- javascript - infowindow.close() 无法使用 reactjs 在谷歌地图上工作
- javascript - 如何使用javascript中的GET方法在ajax调用中传递数据