问题遇到的现象和发生背景
洛谷题目:https://www.luogu.com.cn/problem/P1098
为什么java在本地的idea中正常编译运行,但是在洛谷在线ide中无法正常读入数据,以至于只输出个换行符就结束了
问题相关代码,请勿粘贴截图
package test;
import java.io.*;
public class Test2{
static StringBuilder strB = new StringBuilder();
static StringBuilder strl = new StringBuilder();
static BufferedReader ins = new BufferedReader(new InputStreamReader(System.in));
static StreamTokenizer in = new StreamTokenizer(ins);
static PrintWriter out = new PrintWriter(new OutputStreamWriter(System.out));
public static void main(String[] args) throws IOException{
char cz = '0';
char cy = '0';
in.nextToken();
int p1 = (int)in.nval;
in.nextToken();
int p2 = (int)in.nval;
in.nextToken();
int p3 = (int)in.nval;
int add = 0;
if(p1 == 2)
{
add = 'A'-'a';
}
String str = ins.readLine();
// System.out.println(str);
int len = str.length();
int i = 0;
char cl;
while(i<len)
{
cl = str.charAt(i);
i++;
if(cl == '-')
{ // 玩意-在第一个,或者最后一个呢?这不就越界了?先不考虑
if(i-2>=0&&i<len)
{
cz = str.charAt(i-2);
cy = str.charAt(i);
}
if(cz>='a'&&cz<='z'&&cy>='a'&&cy<='z'&&cy>cz||cz>='0'&&cz<='9'&&cy>='0'&&cy<='9'&&cy>cz)
{
int lk = 0;
if(cz>='a')
{
lk = 1;
}
for(char csl = (char)(cz+1);csl<cy;csl++)
{
for(int i1 = 0;i1<p2;i1++)
{
if(p1 == 3)
{
strl.append("*");
continue;
}
if(lk == 1)
{
strl.append((char)(csl+add));
}
else
{
strl.append(csl);
}
}
}
if(p3 == 2)
{
strl.reverse();
}
strB.append(strl);
strl.delete(0,strl.length());
}
if(cy<=cz||cz=='-')
{
strB.append("-");
}
}
else
{
strB.append(cl);
}
}
out.print(strB);
out.close();
}
}
运行结果及报错内容
我的解答思路和尝试过的方法
会不会是因为这个,可我还是不懂啊
我想要达到的结果
能够在洛谷中正常编译运行,我应该保持哪种读入输出习惯?还望大家不吝赐教,谢谢了