JAVA:在给定特定行和列的情况下替换JTextArea中的字符

时间:2011-06-14 17:33:21

标签: java

我正在编写一个解释Befunge(93)程序的程序 如你所知,Befunge有特殊命令'p' 这个命令将一些给定的(由程序本身)字符放入“代码空间”本身,为此我很好奇这个问题。
我已经完成了所有其他事情,包括执行命令'p' 但我无法使代码空间(我用JTextArea实现)与'p'代码动态交互。

我的意思是,当Befunge程序开始运行时,我将JTextArea保存到80 * 25 char数组中,所有操作都在数组中完成。
'p'命令也只在内部操作,只是替换了数组上的字符。 (而不是源JTextArea)

我想要想象代码空间的变化,所以我问:

如何在JTextArea中用另一个角色替换(2,3)的角色?

2 个答案:

答案 0 :(得分:3)

根据javadoc,可以通过

完成
int lineNumber = 2;
int charAtLineOffset = 3;

int offset = area.getLineStartOffset(lineNumber) + charAtLineOffset;
area.replaceRange(new String(newChar), offset , offset + 1);

答案 1 :(得分:1)

这样的事可能吗?

void replaceChar(int row, int col, char replaceChar)
{
    int lineOffset = jTextArea.getLineStartOffset(row);
    jTextArea.replaceRange(new String(replaceCHar), lineOffset + col, lineOffset + col + 1);
}