Java 查找和替换文本

标签 java android search text replace

嗨,我正在开发一个 Android 应用程序,这是我的问题

我有一个可能有 100 行长的文本文件,它因手机而异,但可以说其中一个部分是这样的

line 1 = 34
line 2 = 94
line 3 = 65
line 4 = 82
line 5 = 29
etc

每行将等于某个数字,但该数字将与手机不同,因为我的应用程序将更改此数字,并且在安装我的应用程序之前它可能已经不同。所以这是我的问题,我想在文本文件中搜索“line 3 =”,然后删除整行并将其替换为“line 3 = some number”

我的主要目标是更改第 3 行末尾的数字并保持第 3 行的文本完全相同,我只想编辑数字,但问题是数字总是不同的

我怎样才能做到这一点?感谢您的帮助

最佳答案

您无法在文件中间“插入”或“删除”字符。即,您不能在文件中间将 123 替换为 123412

因此,要么“填充”每个数字,使它们都具有相同的宽度,即,将 43 表示为 000043,否则您可能必须重新生成整个文件。

要重新生成整个文件,我建议您逐行读取原始文件,适当处理这些行,然后将它们写入一个新的临时文件。然后,完成后,用新文件替换旧文件。

要处理,我建议您执行类似的操作

String line = "line 3 = 65";

Pattern p = Pattern.compile("line (\\d+) = (\\d+)");
Matcher m = p.matcher(line);

int key, val;
if (m.matches()) {
    key = Integer.parseInt(m.group(1));
    val = Integer.parseInt(m.group(2));

    // Update value if relevant key has been found.
    if (key == 3)
        val = 123456;

    line = String.format("line %d = %d", key, val);
}

// write out line to file...

关于Java 查找和替换文本,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5912753/

相关文章:

Java unicode 字体

java - 发送邮件并插入数据库 Play Framework

java - 加载更多数据时停止 Recyclerview 的动画

javascript - 如何在嵌套的 Json 中使用 angularjs 进行过滤

python - 正则表达式搜索查找查询之前和之后

java - 连续动画安卓

java - java中未指定泛型和<?>之间的编译差异

android - 一直调用 AutoCompleteTextView 的 performFiltering

android - 安卓设计模式

linux - 从单个文件夹中搜索文件(知道前缀)与从多个文件夹中搜索文件(知道文件夹名称)