⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 countbooks.java

📁 nanjing university cs 的java课件。 对新手很有用。付课件中源码。
💻 JAVA
字号:
import javax.swing.*;
import javax.xml.parsers.*;
import org.xml.sax.*;
import org.xml.sax.helpers.*;

public class CountBooks {
	public static void main(String[] args) {
		String filename;
		if (args.length > 0) {
			filename = args[0];
		}
		else {
			filename = "orders.xml";
		}
		countBooks(filename);
	}

	private static void countBooks(String filename) {
		DefaultHandler handler = new CountHandler();
		SAXParserFactory factory = SAXParserFactory.newInstance();
		try {
			SAXParser parser = factory.newSAXParser();
			parser.parse(filename, handler);
		}
		catch (Exception e) {
			String errorMessage =
				"Error parsing " + filename + ": " + e;
			System.err.println(errorMessage);
			e.printStackTrace();
		}
	}
}

class CountHandler extends DefaultHandler {
	private boolean collectCount = false;
	private boolean collectISBN = false;
	private int currentCount = 0;
	private int totalCount = 0;
	public void startElement(String namespaceUri, String localName,
				String qualifiedName, Attributes attributes) throws SAXException {
		if (qualifiedName.equals("count")) {
			collectCount = true;
			currentCount = 0;
		}
		else if (qualifiedName.equals("isbn")) {
			collectISBN = true;
		}
	}

	public void endElement(String namespaceUri, String localName,
				 String qualifiedName) throws SAXException {
		if (qualifiedName.equals("count")) {
			collectCount = false;
		}
		else if (qualifiedName.equals("isbn")) {
			collectISBN = false;
		}
	}

	public void endDocument() throws SAXException {
		String message =
			"You ordered " + totalCount + " copies of \n" +
			"Core Web Programming Second Edition.\n";
		if (totalCount < 250) {
			message = message + "Please order more next time!";
		}
		else {
			message = message + "Thanks for your order.";
		}
		JOptionPane.showMessageDialog(null, message);
	}

	public void characters(char[] chars, int startIndex, int length) {
		if (collectCount || collectISBN) {
			String dataString =
				new String(chars, startIndex, length).trim();
			if (collectCount) {
				try {
					currentCount = Integer.parseInt(dataString);
				}
				catch (NumberFormatException nfe) {
					System.err.println("Ignoring malformed count: " +
									   dataString);
				}
			}
			else if (collectISBN) {
				if (dataString.equals("0130897930")) {
					totalCount = totalCount + currentCount;
				}
			}
		}
	}
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -