java - 字符串 .replace() 不适用
问题描述
我正在尝试从我的字符串中删除非数字字符。
我曾尝试使用该.replace()
方法,但这会返回错误:
String 类型中的方法 replace(char, char) 不适用于参数 (String, String)
代码:
Properties p = new Properties();
File f = new File("coords.txt");
if (f.exists()) {
FileInputStream in;
try {
in = new FileInputStream(f);
p.load(in);
in.close();
} catch (Exception e) {
System.err.println("Failed to load coordinates");
System.err.println(e.getMessage());
Button.waitForAnyPress();
System.exit(0);
}
} else {
System.out.println("No coordinates found");
while (!Button.ESCAPE.isPressed()) {
Thread.yield();
}
System.exit(0);
}
当我打印出字符串gg
时,初始化如下:
String gg = p.toString();
我得到输出:Object020f458
。
我的电脑突出显示了替换错误:
gg = gg.replace("{", "");
gg = gg.replace("=", "");
gg = gg.replace("}", "");
int commaLoc = gg.indexOf(",");
int x = Integer.parseInt(gg.substring(0,commaLoc));
int y = Integer.parseInt(gg.substring(commaLoc + 1));
解决方案
因此,我正在查看 NXT 及其 API(JavaDocs)
顺便说一句,我猜我绝不是 NXT 和 leJOS 方面的专家。
您可以通过 JavaDoc 看到该replace(CharSequence, CharSequence)
方法不存在。
虽然我不会以这种方式解决问题,但您可以尝试使用 aStringBuilder
删除不需要的字符。
例如,请参阅 Jon Skeet 的想法答案 https://stackoverflow.com/a/3472705/1392277
您可以提取一个方法,例如:
private String removeChars(
final String originalString,
final String charsToRemove) {
final StringBuilder stringBuilder = new StringBuilder(originalString);
int i = stringBuilder.indexOf(charsToRemove);
while (i != -1) {
stringBuilder.replace(i, i + charsToRemove.length(), "");
i = stringBuilder.indexOf(charsToRemove, i);
}
return stringBuilder.toString();
}
推荐阅读
- apache-spark - 如何存储配置单元表的创建日期
- php - Wordpress 无法访问管理员登录
- javascript - 使 JS 类可调用而没有副作用
- elasticsearch - 如何在 ELK Stack 中为 filebeat 创建弹性搜索索引?
- android - 删除列表项后随机检查带有 Kotlin recyclerView 的 Android
- c++ - 重定位 .debug_line 部分中的文件
- html - 在引导容器中包装多个部分的正确方法是什么?
- java - 为什么我的 spark 连接器包的 maven 子依赖版本与其他版本不同
- javascript - 为什么类星体框架选择 css 中的这种奇怪行为?
- python - 如何在张量流中创建特征列?