java课堂作业第十三周

第一题

修改程序清单21-7中的程序,如果关键字在注释或者字符串中,则不进行统计,将java文件名从命令行传递。假设java源代码是正确的,行注释和行段落注释不会交叉。

第二题

The four adjacent digits in the 1000-digit number that have the greatest product are 9*9*8=5832

答案

第一题

package ch13;
import java.util.*;
import java.io.*;

public class b {
    public static void main(String[] args) {

        String[] keywordString = {"abstract", "finally", "public",
                "boolean", "float", "return", "break", "for", "short", "byte",
                "goto", "static", "case", "if", "super", "catch", "implements",
                "switch", "char", "import", "synchronized", "class",
                "instanceof", "this", "const", "int", "throw", "continue",
                "interface", "throws", "default", "long", "transient", "do",
                "native", "try", "double", "new", "void", "else", "package",
                "volatile", "extends", "private", "while", "final",
                "protected", "true", "null"};

        Set<String> keywordSet =
                new HashSet<String>(Arrays.asList(keywordString));
        int count = 0;

        try {
            //Scanner input = new Scanner(new File(args[0]));
            Scanner input = new Scanner(new File("Ch21Q03_TestFile.java"));
            String text = "";
            while (input.hasNext()) {
                String line = input.nextLine();
                line = stripLineComments(line);
                line = stripLineStringLiterals(line);
                text += line + " ";
            }

            text = stripParagraghComments(text);

            String[] tokens = text.split("[ \\[,()\\]]");
            for (String token: tokens) {
                if (keywordSet.contains(token)){
                    count++;
                    System.out.print(token+" ");}
            }
            System.out.println();
            System.out.println("The number of keywords in the program is "
                    + count);
        }
        catch (Exception ex) {
            ex.printStackTrace();
        }
    }

    /* Strip line comments */
    private static String stripLineComments(String line) {
        int index = line.indexOf("//");

        if (index < 0)
            return line;
        else
            return line.substring(0, index);
    }

    /* Strip string literals */
    private static String stripLineStringLiterals(String line) {
        int start = line.indexOf("\"");
        int end = line.indexOf("\"", start + 1);

        while (start > 0 && end > 0) {
            line = line.substring(0, start) + line.substring(end + 1);
            start = line.indexOf("\"");
            end = line.indexOf("\"");
        }

        return line;
    }

    /* Strip paragraph comments */
    private static String stripParagraghComments(String text) {
        int start = text.indexOf("/*");
        int end = text.indexOf("*/");

        while (start > 0 && end > 0) {
            text = text.substring(0, start) + text.substring(end + 2);
            start = text.indexOf("/*");
            end = text.indexOf("*/");
        }

        return text;
    }
}

第二题

package ch13;
import java.io.FileNotFoundException;
import java.io.FileReader;
import java.io.IOException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.Vector;

public class a {
    public static void main(String[] args) {
        ArrayList numList = new ArrayList();
        List v = new Vector();
        long sum=1L;

        FileReader fr=null;
        try {
            fr = new FileReader("13.txt");
        } catch (FileNotFoundException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }
        int ch = 0;
        try {
            for(int i =0;(ch = fr.read())!=-1;i++){
                v.add(ch-'0');
            }
        } catch (IOException e) {
            // TODO Auto-generated catch block
            e.printStackTrace();
        }

        for(int i=0;i<v.size()-12;i++){
            for(int j=i;j<i+13;j++){
                sum =sum *(int)v.get(j);
            }
            //System.out.println(sum);
            numList.add(sum);
            sum=1;
        }
        Collections.sort(numList);//为了排序引入的函数
        System.out.println(numList.get(numList.size()-1));
    }
}

 

  • 0
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
SQLAlchemy 是一个 SQL 工具包和对象关系映射(ORM)库,用于 Python 编程语言。它提供了一个高级的 SQL 工具和对象关系映射工具,允许开发者以 Python 类和对象的形式操作数据库,而无需编写大量的 SQL 语句。SQLAlchemy 建立在 DBAPI 之上,支持多种数据库后端,如 SQLite, MySQL, PostgreSQL 等。 SQLAlchemy 的核心功能: 对象关系映射(ORM): SQLAlchemy 允许开发者使用 Python 类来表示数据库表,使用类的实例表示表的行。 开发者可以定义类之间的关系(如一对多、多对多),SQLAlchemy 会自动处理这些关系在数据库的映射。 通过 ORM,开发者可以像操作 Python 对象一样操作数据库,这大大简化了数据库操作的复杂性。 表达式语言: SQLAlchemy 提供了一个丰富的 SQL 表达式语言,允许开发者以 Python 表达式的方式编写复杂的 SQL 查询。 表达式语言提供了对 SQL 语句的灵活控制,同时保持了代码的可读性和可维护性。 数据库引擎和连接池: SQLAlchemy 支持多种数据库后端,并且为每种后端提供了对应的数据库引擎。 它还提供了连接池管理功能,以优化数据库连接的创建、使用和释放。 会话管理: SQLAlchemy 使用会话(Session)来管理对象的持久化状态。 会话提供了一个工作单元(unit of work)和身份映射(identity map)的概念,使得对象的状态管理和查询更加高效。 事件系统: SQLAlchemy 提供了一个事件系统,允许开发者在 ORM 的各个生命期阶段插入自定义的钩子函数。 这使得开发者可以在对象加载、修改、删除等操作时执行额外的逻辑。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值