我正在调整Java应用程序中的代码以在Android上工作,但代码使用Scanner
类并在许多代码段中调用其功能。另外,我必须在MainActivity
的单独类中实现它。
所以我传递了控件,它将显示数据(TextView
)作为参数,而不是使用System.out.print()
,我执行:Salida.setText(Salida.getText().toString()+'new text');
主要问题是在这种情况下的演讲(对不起我的英语不好),因为.nextLine()
在这种情况下不起作用:
public static void main( String args[] ){
String line, cad;
int col, row, sz, i, j;
char ch; Scanner in = new Scanner( System.in );
line = in.nextLine();
while(true){
if( line.equals("*") )
break;
dir = line;
cols = line.length();
size = new int [cols];
row=0;
while(true){
line = in.nextLine();
ch = line.charAt(0);
if( ch=='<' || ch== '>' || ch== '=' || ch== '*')
break;
StringTokenizer st = new StringTokenizer(line,"&");
for(col=0; st.hasMoreTokens();col++) {
cad = st.nextToken();
Mat[row][col] = cad;
sz = cad.length();
if(sz > size[col])
size[col] = sz;
}
row++;
}
print('@','-');
printline(0);
print('|','+');
for(j=1; j<row; j++){printline(j);}
print('@','-');}
}
我做到了:
public void Dibujar(){
String line="", cad;
int col, row, sz, i, j;
char ch;
//Scanner in = new Scanner( System.in );
while(Leer.callOnClick()){
line = Entrada.getText().toString();
}
while(true){
if( line.equals("*") )
break;
dir = line;
cols = line.length();
size = new int [cols];
row=0;
while(true){
if(!Leer.callOnClick())
break;
line = Entrada.getText().toString();
ch = line.charAt(0);
if( ch=='<' || ch== '>' || ch== '=' || ch== '*')
break;
StringTokenizer st = new StringTokenizer(line,"&");
for(col=0; st.hasMoreTokens();col++) {
cad = st.nextToken();
Mat[row][col] = cad;
sz = cad.length();
if(sz > size[col])
size[col] = sz;
}
row++;
}
print('@','-');
printline(0);
print('|','+');
for(j=1; j<row; j++){printline(j);}
print('@','-');
}
}
然而,当我调用它时,它会显示一个空白活动......
print()
和printline()
是方法。