所以我在这里要做的是通过使用String code = ta.getText()方法从JTextArea获取文本。 ta位于TextIDE类中,声明为public static JTextArea ta = new JTextArea();
然而,之后我检索了用户输入的文本,我想把它变成一个char数组,所以我使用方法code.toCharrArray();之后在方法compileText中我使用for-statement来查找字母' p'如果找到了,我调用方法p(),然后发送计数器i和实际字符数组的位置,这样我就可以继续搜索字母' r'我这样做直到班级找到印刷字。每当它发生时,它应该附加另一个JTextArea,它就像一个控制台,位于一个名为Listener的类中,所以我使用Listener.c.jt1.append(s); s等于打印后的任何内容,直到找到分号为止,&#39 ;;'。
但它不起作用,我没有错误,所以我认为这里存在逻辑错误...... 谢谢你的帮助!! :)
public class Compiler {
String code = TextIDE.ta.getText(); //Gets the text that was inputted by the user
public Compiler(){ //Constructor
if(!(code.endsWith("programEnd"))){
Listener.c.jt2.append("Error - Code must end with line: programEnd on the last line");
}else{
compileText(code, 0);
}
}
public void compileText(String code, int start){ //Starts the compiling
char[] codeArray = code.toCharArray();
System.out.println(codeArray.length);
for(int i = start; i < codeArray.length; i++){ //Looks for character 'p'
switch(codeArray[i]){
case 'p': p(codeArray, ++i);
System.out.println("p");
break;
}
}
}
public void p(char[] codeArray, int start){
for(int i = start; i < codeArray.length; i++){
switch(codeArray[i]){
case 'r': r(codeArray, ++i);
System.out.println("r");
break;
}
}
}
public void r(char[] codeArray, int start){
for(int i = start; i < codeArray.length; i++){
switch(codeArray[i]){
case 'i': i(codeArray, ++i);
System.out.println("i");
break;
}
}
}
public void i(char[] codeArray, int start){
for(int i = start; i < codeArray.length; i++){
switch(codeArray[i]){
case 'n': n(codeArray, ++i);
System.out.println("n");
break;
}
}
}
public void n(char[] codeArray, int start){
for(int i = start; i < codeArray.length; i++){
switch(codeArray[i]){
case 't': t(codeArray, ++i);
System.out.println("t");
break;
}
}
}
public void t(char[] codeArray, int start){
String s = "";
for(int i = start; i < codeArray.length; i++){
if(!(codeArray[i] == ';')){
s += codeArray[i];
}else{
Listener.c.jt1.append(s);
compileText(code, ++i);
break;
}
}
}
}
答案 0 :(得分:0)
我想在char数组中找到print这个词,我该怎么做?
为什么使用字符数组?您只需搜索文本字符串:
String text = textArea.getText();
System.out.println( text.indexof( "print" );