java获取控制台输入问题

我想将字符串打印到控制台,然后用户将此字符串进行编辑,编辑完之后再保存到原来的字符串中。
首先我想的是怎么模拟控制台用户输入,将原本的字符串模拟输出到用户控制到输入的地方,这样就用户就可以修改、删除、新增,然后再用scanner将这个用户操作之后的字符串读到,保存在字符串变量中。
后面查询资料查询到用System.setIn()可以模拟用户输入的数据,但是显示不在控制台用户输入的地方,最终获取到的也是原本的字符串。虽然达到了模拟用户输入的效果,但是用户却对字符串修改不了。
有没有DL知道怎么弄?