【CSP】201703-3 Markdown

【CSP】201703-3 Markdown

  • 题目描述
  • 代码

题目描述

【CSP】201703-3 Markdown_第1张图片
【CSP】201703-3 Markdown_第2张图片
【CSP】201703-3 Markdown_第3张图片
【CSP】201703-3 Markdown_第4张图片
这个代码只有70分,有没有大佬看出来哪里又错TT,看输出我也没看出来哪里错了
【CSP】201703-3 Markdown_第5张图片

代码

import java.util.ArrayList;
import java.util.Scanner;

public class p201703_3 {
	// 处理行内
	public static String inRow(String str){
		String newStr1 = "", newStr2 = "";
		// 是否有强调的内容
		int idx = str.indexOf("_");
		int pre = 0;
		while(idx != -1) {
			newStr1 += str.substring(pre, idx);
			pre = idx;
			idx = str.indexOf("_", pre+1);
			newStr1 += ""+str.substring(pre+1, idx)+"";
			pre = idx + 1;
			idx = str.indexOf("_", idx + 1);
		}
		newStr1 += str.substring(pre);
		idx = newStr1.indexOf("[");
		pre = 0;
		while(idx != -1) {
			newStr2 += newStr1.substring(pre, idx);
			pre = idx;
			idx = newStr1.indexOf("]", pre);
			String text = newStr1.substring(pre + 1, idx);
			idx = newStr1.indexOf("(", idx);
			pre = idx;
			idx = newStr1.indexOf(")", idx);
			String link = newStr1.substring(pre + 1, idx);
			newStr2 += "" + text + "";
			pre = idx + 1;
			idx = newStr1.indexOf("[", idx);
		}
		newStr2 += newStr1.substring(pre);
		return newStr2;
	}
	public static void main(String[] args) {
		// TODO Auto-generated method stub
		Scanner sc = new Scanner(System.in);
		ArrayList p = new ArrayList<>();
		ArrayList ul = new ArrayList<>();
		while(sc.hasNext()) {
			String str = sc.nextLine();
			// 是段落的结尾
			if(p.size() != 0 && str.equals("")) {
				System.out.print("

"); while(p.size()!=0) { if(p.size() == 1) { System.out.print(p.get(0)); p.remove(0); }else { System.out.println(p.get(0)); p.remove(0); } } System.out.println("

"); continue; } if(ul.size() != 0 && str.equals("")) { System.out.println("
    "); while(ul.size()!=0) { System.out.println("
  • "+ul.get(0)+"
  • "); ul.remove(0); } System.out.println("
"); continue; } // 跳过空行 if(str.equals("")) { continue; } // 如果是标题区块 if(str.charAt(0)=='#') { // 数一下是几级的标题 int k = 0; while(str.charAt(k)=='#') { k++; } int i = k + 1; while(str.charAt(i)==' ') { i++; } System.out.println(""+inRow(str.substring(i))+""); } // 如果是无序列表 else if(str.charAt(0) == '*') { int i = 1; while(str.charAt(i)==' ') { i++; } ul.add(inRow(str.substring(i))); } // 段落 else { p.add(inRow(str)); } } if(p.size()!=0) { System.out.print("

"); while(p.size()!=0) { if(p.size() == 1) { System.out.print(p.get(0)); p.remove(0); }else { System.out.println(p.get(0)); p.remove(0); } } System.out.println("

"); } if(ul.size() != 0) { System.out.println("
    "); while(ul.size()!=0) { System.out.println("
  • "+ul.get(0)+""); ul.remove(0); } System.out.println("
"); } } }

你可能感兴趣的:(java)