本文提供一些java代码片段,可简化ACM,OJ的输入输出。
import java.util.*;
import java.util.regex.Matcher;
import java.util.regex.Pattern;
public class Main {
private static String line;
// 请实现本函数,处理每一行输入
private static void handle() {
System.out.println(line);
}
// 请根据每行输入,判断是否为最后一行,即在处理该行后是否应该停止
private static boolean stop() {
return false;
}
// 主程序
public static void main(String[] args) {
ScannerUtil.scanner();
}
public static class ScannerUtil {
private static Scanner in = new Scanner(System.in);
public static void scanner() {
while (in.hasNextLine()) {
line = in.nextLine();
handle();
if (stop())
break;
}
}
public static void scannerNum() {
int n = Integer.parseInt(in.nextLine());
for (int i = 0; i < n; i++) {
line = in.nextLine();
handle();
}
}
}
public static class PrintUtil {
// 请实现本函数,转换参数类型后打印
private static void print(Object object) {
Map.Entry<Integer, String> entry = (Map.Entry<Integer, String>) object;
System.out.print("{" + entry.getKey() + ", " + entry.getValue() + "}");
}
public static void printCollections(Collection collection, String split, boolean nrFlag) {
printCollections(collection, split, nrFlag, "", "");
}
public static void printMap(Map map, String split, boolean nrFlag) {
printMap(map, split, nrFlag, "", "");
}
public static void printCollections(Collection collection, String split, boolean nrFlag, String start, String end) {
if (collection.size() == 0)
return;
Iterator iterator = collection.iterator();
System.out.print(start);
print(iterator.next());
while (iterator.hasNext()) {
System.out.print(split);
if (nrFlag)
System.out.println();
print(iterator.next());
}
System.out.println(end);
}
public static void printMap(Map map, String split, boolean nrFlag, String start, String end) {
printCollections(map.entrySet(), split, nrFlag, start, end);
}
}
public static class RegExpUtil {
// 请把正则表达式赋值给regStr
public static String regStr = "0x..";
// 正则匹配结果保存在regIn中
public static ArrayList<String> regIn = new ArrayList<String>();
private static Pattern p = Pattern.compile(regStr);
private static Matcher m;
// 在handle()函数中调用本函数进行正则解析
public static void parse() {
regIn.clear();
m = p.matcher(line);
while (m.find()) {
regIn.add(m.group());
}
}
}
}
测试代码(与上一段代码放入同一文件即可运行):
//测试Main中部分函数
class MainTest {
//测试PrintUtil
static void testPrintUtil() {
Map<Integer, String> m = new HashMap<Integer, String>();
m.put(1, "qwe1");
m.put(2, "qwe2");
m.put(3, "qwe3");
Main.PrintUtil.printMap(m, ",", true);
Main.PrintUtil.printMap(m, ",", true, "{\n", "\n}");
Main.PrintUtil.printMap(m, ",", false, "[", "]");
/*
测试结果:
{1, qwe1},
{2, qwe2},
{3, qwe3}
{
{1, qwe1},
{2, qwe2},
{3, qwe3}
}
[{1, qwe1},{2, qwe2},{3, qwe3}]
*/
}
public static void main(String[] args) {
testPrintUtil();
}
}