H21年春期基本情報技術者午後問11(JAVA)
H21年春期基本情報技術者午後問11(JAVA)で、
[プログラム2]の
引数textに格納される物が分かりません。
分かる方、教えて下さい。
//プログラム1
class GapBuffer {
private static final int INITIAL_GAP_SIZE = 128;
private char[] buffer;
private int gapOffset = 0;
private int gapSize = INITIAL_GAP_SIZE;
GapBuffer(String initialText){
buffer = new char[initialText.length() + gapSize];
System.arraycopy(initialText.toCharArray(), 0,
buffer, gapSize, initialText.length());
}
void insert(int offset, char ch) {
confirmGap(offset);
buffer[gapOffset++] = ch;
gapSize--;
}
void delete(int offset){
if (length() == 0)
return;
confirmGap(offset + 1);
gapOffset--;
gapSize++;
}
char charAt(int offset) {
if (offset >= gapOffset)
offset += gapSize;
return buffer[offset];
}
int length() { return buffer.length - gapSize ;}
private void confirmGap(int newGapOffset){
if (gapSize == 0) {
char[] temp = new char[buffer.length + INITIAL_GAP_SIZE];
System.arraycopy(buffer, 0, temp, 0, buffer.length);
gapOffset = buffer.length;
gapSize = INITIAL_GAP_SIZE;
buffer = temp;
}
if(newGapOffset < gapOffset) {
System.arraycopy(buffer, newGapOffset, buffer,
newGapOffset + gapSize, gapOffset - newGapOffset);
} else {
System.arraycopy(buffer, gapOffset + gapSize,
buffer, gapOffset, newGapOffset - gapOffset);
}
gapOffset = newGapOffset;
}
}
/プログラム2
class Editor {
private GapBuffer buf;
private int cursor = 0;
private Editor(String text) {
buf = new GapBuffer(text);←此処です
}
private void run() {
Display.output(buf, cursor);
char ch;
while ((ch = CharReader.get()) != CharReader.EOF) {
switch (ch){
case CharReader.MOVE_FORWARD:
moveCursor(1);
break;
case CharReader.MOVE_BACKWARD:
moveCursor(-1);
break;
case CharReader.DELITE:
if (cursor < buf.length()) {
buf.delete(cursor);
}
break;
default:
buf.insert(cursor++, ch);
break;
}
Display.output(buf, cursor);
}
}
private void moveCursor(int n) {
int newCursor = cursor + n;
if (newCursor >= 0 && newCursor <= buf.length()) {
cursor = newCursor;
}
}
public static void main(String[] args) {
Editor editor = new Editor(args[0]);
editor.run();
}
}