精华内容
下载资源
问答
  • Java_键盘输入语句
    2022-03-01 19:23:05

    一、介绍

    在编程中,需要接收用户输入的数据,就可以使用键盘输入语句来获取。

    二、步骤

    1)导入该类的所在包, java.util.*               //1.引入/导入  Scanner 类所在的包

    2) 创建该类对象 (声明变量)                  //2.创建Scanner 对象 , new 创建一个对象

    3) 调用里面的功能                                     //3. 接收用户输入了,  使用相关的方法

    三、案例演示

    import java.util.Scanner;//表示把java.util下的Scanner类导入
    public class InPut {
    
        //编写一个main方法
        public static void main(String[] args) {
    
            //Scanner类 表示 简单文本扫描器,在java.util 包
            //1.引入/导入  Scanner 类所在的包
            //2.创建Scanner 对象 , new 创建一个对象
            //   myScanner  就是 Scanner 类的对象
            Scanner myScanner = new Scanner(System.in);
            //3. 接收用户输入了,  使用相关的方法
            System.out.println("请输入你的姓名:");
            String name = myScanner.next();
    
            System.out.println("请输入你的年龄:");
            int age = myScanner.nextInt();
    
            System.out.println("请输入你的工资:");
            double sal = myScanner.nextDouble();
    
            System.out.println("你的信息如下:");
            System.out.println("姓名=" + name + " 年龄=" + age + " 工资=" +sal);

    四、使用API文档查找

    更多相关内容
  • 两个文本文件,一个存储商户号(2000条),一个存储商户号的insert语句(10万条并且每条sql语句分成三行),根据商户号找到对应的sql语句
  • Java查询大文本文件的处理方法有时我们需要查询大文本而不是数据库,这时就需要流式读入文件并实现查询算法,还要进行并行处理以提高性能。但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且...

    Java查询大文本文件的处理方法

    有时我们需要查询大文本而不是数据库,这时就需要流式读入文件并实现查询算法,还要进行并行处理以提高性能。但JAVA本身缺少相应的类库,需要硬编码才能实现结构化文件计算,代码复杂且可读性差,难以实现高效的并行处理。

    使用免费的集算器可以弥补这一不足。集算器封装了丰富的结构化文件读写和游标计算函数,书写简单代码就能实现并行计算,并提供了易用的JDBC接口。JAVA应用程序可以将集算器脚本文件当做数据库存储过程执行,传入参数并用JDBC获得返回结果。

    集算器与Java应用程序的集成结构如下:

    1e4581afff9bc4a4c91c581cead151df.png

    下面举例说明集算器协助JAVA查询大文本的基本过程。源数据sOrder.txt如下:

    image.php?url=09dKHG01&type=thumbnail_812x000

    要查询起止时间是startDate、endDate之间,金额大于argAmount的订单,只需使用如下代码:

    A1:以游标方式打开文件。@t表示将第1行读为列名。

    A2:进行结构化查询,结果为游标。

    A3:执行游标,将结果读入内存,如下:

    image.php?url=09dKHG03&type=thumbnail_740x000

    JAVA主程序可以JDBC的方式调用集算器脚本,代码如下:

    Class.forName("com.esproc.jdbc.InternalDriver");

    con=DriverManager.getConnection("jdbc:esproc:local://");

    //调用集算器脚本类似存储过程),其中searchbig是dfx的文件名

    st=(com. esproc.jdbc.InternalCStatement)con.prepareCall("call searchbig");

    //设置参数

    st.setObject(1,"2010-01-01");

    st.setObject(2,"2010-12-31");

    st.setObject(3,2000);

    //执行脚本

    st.execute;

    //获取结果集

    ResultSetrs = st.getResultSet;

    ……

    返回值是符合JDBC标准的ResultSet对象,调用集算器脚本和访问数据库的方法完全一样,熟悉JDBC的程序员可以很快掌握。

    对于上面这类较简单的代码,还可以直接将脚本写在JDBC调用中,多行语句之间用\n分隔即可,类似执行一句较复杂的SQL,这样可以不必再保存一个脚本文件。

    st = (com.esproc.jdbc.InternalCStatement)con.createStatement;

    ResultSet rs1 =st.executeQuery("=file(\"D:\\sOrder.txt\").import@t\n" +"=A1.select(OrderDate>=date(\"2010-01-01\") &&OrderDate<=date(\"2010-12-31\") && Amount>2000)\n"+

    "=A2.fetch");

    集算器会返回最后一个表达式的值。

    如果查询结果内存装不下,可以在集算器中直接返回游标即去掉A3代码),在JAVA中只需设置每批次读取的记录数即可正常读取,具体代码如下:

    st.setFetchSize(1000)

    关于集算器JDBC的部署和调用的更详细信息可参考集算器集成应用之被JAVA调用。

    集算器还可以实现多线程并行计算,最简单方法就是在上述代码的cursor函数中使用@m,这表示多线程读取文件。

    也可以手工分段,在读取和计算部分都使用多线程并行计算,代码如下:

    A1:用8个游标打开文件,每次读取文件的指定部分。~表示循环变量,依次是1、2…8,@z表示将文件按字节数大致分为几部分,只读取其中一部分,集算器会自动去头补尾,以保证取出的数据是整行。

    A2:针对每个游标执行查询。

    A3:并行执行游标,并合并结果。@x表示合并的对象是游标,@m表示并行计算。需要注意的是,函数conj无法保证结果顺序和源数据一致。

    上述代码使用了集算器内置的并行计算函数,如果计算过程较复杂,或内存可以装下计算结果,则适合用显式并行计算语句。代码如下:

    image.php?url=09dKHG05&type=thumbnail_1282x000

    A1:设定并行数。

    A2:并行执行代码,作用范围是缩进的B2-B3。to(A1)=[1,2…8]表示每个线程的入口参数。线程内部可用A2来获取入口参数,线程外部可用A2获取所有线程的计算结果。

    B3:查询游标,将结果读入内存,并返回给主线程。

    A4:按顺序合并各线程的计算结果。

    对于有序数据,可以用二分法来提高查询性能。比如数据已按Client和OrderID排序,现在要根据参数argClient和argOrder找出相应的记录,可以使用下面的代码:

    image.php?url=09dKHG06&type=thumbnail_1082x000

    begin,end是二分法的起止位置,m是中间位置。

    B4:按字节数定位到中间位置,打开游标读入一条记录,集算器会自动实现去头补尾,取出完整记录。@x表示取出记录后立即关闭游标。

    B5-C6:如果定位成功,则将当前记录存储在C5。

    B7-C8:如果定位不成功,则继续比较集合大小并重新设置begin,end。

    A9:将C5中的计算结果显式地返回给JDBC。

    相关文章暂无相关文章

    展开全文
  • 正如一个作家需要一个文字处理器来故事,一个艺术家需要画布来创作,同样的,如果想编程,你会需要一个地方来代码。程序员在哪里编写代码?最常见的就是使用文本编辑器了吧。下文列出了7个主流的文本编辑器,...

    正如一个作家需要一个文字处理器来写故事,一个艺术家需要画布来创作,同样的,如果想编程,你会需要一个地方来写代码。

    程序员在哪里编写代码?最常见的就是使用文本编辑器了吧。

    下文列出了7个主流的文本编辑器,不出意外的话,开发人员应该都有所了解,至少听说过。欢迎大家在文章底部留言评论,分享自己的使用习惯和对这些编辑器的看法!

    20170217084830_834.png

    Sublime Text 是许多开发人员日常使用的经典文本编辑器,可用于包括 Windows、Mac、Linux 等多个平台。不过虽然可以不购买许可证免费使用,但不时会有弹窗消息提示,有点烦人。想去除弹窗的,还是去付费购买吧。

    Sublime 的特色功能:

    良好的扩展功能(包管理器)

    允许添加第三方库

    速度快,发布快

    多平台支持

    简洁的 UI

    强大的功能集

    20170217084830_243.png

    TextMate 是 Mac下的著名文本编辑器,曾经是 Ruby on Rails 开发人员默认使用的,原因就在于他们主要都在使用 Mac OS 系统。可惜的是,由于只适用于 Mac 系统,有点限制了它的使用性。

    TextMate 具有丰富的功能集、外部库和一些一出现就被其他编辑器复制的创新功能。个人认为其中最引人注目的当属“模糊查找功能”,允许快速定位文件,无需通过 Command + T 来搜寻完整的文件目录。

    20170217084830_16.png

    Atom 是一个相对较新的跨平台文本编辑器,于2014年2月在 Github 上推出,使用 Electron 框架基于 web 技术开发而成。

    由于加载项可以使用 Web 技术构建,很多人都把自定义插件添加到 Atom.io 文本编辑器上。这也实属正常,毕竟是在 Github 上写的,本身就具有很强的 Git 整合性。

    Atom 在最后提交之前的所有更改都会以不同的颜色显示在导航窗格中。如下图左侧橙色部分显示:

    20170217084830_960.png

    Atom 还有基本上你可以想象的任何东西的插件,它确实很优秀,但由于基于 web 技术开发的原因,它通常需要几秒钟来启动。如果你的电脑本身就已经有点卡顿的话,可能需要的时间更长。

    20170217084831_388.png

    如果你看到那些知道自己真正要做什么的人使用 Vim 的话,你会感受到它的速度有多可怕。Vim 是一个命令行文本编辑器,意味着你可以不使用鼠标与它交互。

    Vim 带有多种编辑模式,这和其他文本编辑器有明显的不同。同时它也是一个学习起来非常有挑战性的文本编辑器,但一旦学会了,就能让编程更快。

    如果是刚刚开始学习编程的,其实不太建议使用 Vim。专业编程几年后,再来考虑拿起 Vim 提高生产力。

    20170217084831_778.png

    Emacs 类似于 Vim,也是一个跨平台命令行文本编辑器。它虽然没有 wim 那种多模式,但使用仍然需要一个相对较高的技能水平,因为学习曲线比较高。

    Emacs 有祥全的内置文档,支持几乎所有的 Unicode,高度可定制。

    20170217084831_609.gif

    Notepad ++ 是一个 Windows 下的文本编辑器,旨在成为大多数 Windows 用户熟悉的记事本的专业化版本。

    Notepad ++ 内置多种语法高亮显示,支持自定义语言; 可自动检测文件类型,根据关键字显示节点。同时,还提供数个特色功能,如邻行互换位置、宏功能等等。

    20170217084831_959.png

    Visual Studio Code 是一个运行于 OS X、Windows 和 Linux 之上的,针对于编写现代 web 和云应用的跨平台编辑器,于 2015年由微软发布。

    Visual Studio Code 也集成了所有现代编辑器所应该具备的特性,包括语法高亮、可定制的热键绑定、括号匹配、代码片段收集等等,最近还增加了 Markdown 同步预览功能。

    展开全文
  • 使用 SQL 查询语言,你只能查询位于数据库里面的数据,但是当你面对的数据是一些 Excel 表格或者 Txt 文本格式时,有什么办法能直接对着文件进行 Select 查询呢?Ø 引言作为一名数据库开发程序员,使用 SQL 语言...

    使用 SQL 查询语言,你只能查询位于数据库里面的数据,但是当你面对的数据是一些 Excel 表格或者 Txt 文本格式时,有什么办法能直接对着文件进行 Select 查询呢?

    Ø 引言

    作为一名数据库开发程序员,使用 SQL 语言查询数据是再普通不过的一件事。而 SQL 语言是基于数据库的查询语言,这就要求被查询的数据只能位于数据库中。但在实际工作中,时常会碰到一些不是来源于数据库的数据,特别是很多来自一些 Excel 表格或者 TXT 文本文件。如果要对它们进行 SQL 查询,通常做法是在数据库中创建临时表,然后导入数据后再使用 SQL 对其查询。这种做法本身未尝不可,但是有几点不妥:

    首先,比较麻烦,数据的来源五花八门,格式不同,表结构也各不相同。导入操作往往只能由数据库管理员手动维护,其面临的复杂度可想而知。

    其次,数据库常常会涉及敏感数据或安全考虑,就算你不怕麻烦,愿意去维护,也未必有权限进行这类操作。

    最后,这些数据往往可能是临时的、突发的,根本不适合往数据库里添加,否则会搞得数据库越来越臃肿,最终导致整体访问性能低下。

    有了这些不妥,程序员一般也就不得不放弃 SQL 式查询了,只能通过程序实现一些简单的关键字搜索等功能,毕竟自己去实现 SQL 语法的查询不仅难度大而且完全没必要。

    但是 SQL 查询有时候真的很好用啊……那么,有没有一种第三方软件能实现 SQL 式查询文本,让程序员在享受便利的同时,不需要考虑上面这些烦心的问题呢?

    答案自然是有,那就是本文要介绍的——集算器。

    Ø 开始

    下面就来介绍一下,如何在 Java 中利用集算器实现 SQL 式查询文本文件。当然,此处的文本文件不是指完全自由的文本文件,而是有格式规定的,类似于数据表的文件。

    从官网下载并安装好集算器,将 dm.jar 及其依赖的配置文件 raqsoftConfig.xml 加入到当前程序的类路径。然后使用集算器提供的 JDBC 类,便可将文本文件当成数据库中的数据表来进行 SQL 式查询了。

    示例用到两个文件,第一个 student.txt 数据内容如下:

    0863de74db25e852ba91c2c088049a5c.png

    数据格式为:第一行为字段名,后续行是数据,各列之间用 Tab 键分开。这个表是各个班级的学生基本情况。

    第二个 score.txt 数据内容如下:

    8ab9a7448f9a6559c9fd76957cebb7c6.png

    这个文件通过‘班级’,‘学生 ID’两个关键字段,记录每个学生的各科成绩。

    Ø JDBC 示例

    对于熟悉 JDBC 的同学来说,Java 调用集算器使用 SQL 查询文本的过程很简单,下面贴出示例代码:

    import java.sql.Connection;

    import java.sql.DriverManager;

    import java.sql.ResultSet;

    import java.sql.ResultSetMetaData;

    import java.sql.SQLException;

    import java.sql.Statement;

    public class SQLDemo {

    public static void main(String[] args) {

    Connection con = null;// 连接

    Statement stmt = null;// 执行语句

    ResultSet rst = null;// 结果集

    try {

    /********* 通过 JDBC 连接到 集算器 *********/

    Class.forName(“com.esproc.jdbc.InternalDriver”);

    con = DriverManager.getConnection(“jdbc:esproc:local://”);

    /******************* 执行语句方法 ********************/

    stmt = con.createStatement();

    rst = stmt.executeQuery(“SELECT * FROM score.txt”);

    /******************* 执行语句方法结束 ****************/

    ResultSetMetaData meta = rst.getMetaData();

    for (int i = 0; i < meta.getColumnCount(); i++) {

    System.out.print(meta.getColumnName(i + 1) + “\t”);

    }

    System.out.println();

    // 输出结果

    while (rst.next()) {

    for (int i = 0; i < meta.getColumnCount(); i++) {

    System.out.print(rst.getObject(i + 1) + “\t”);

    }

    System.out.println();

    }

    stmt.close();

    con.close();

    } catch (ClassNotFoundException cnf) {

    System.out.println(“没找到驱动程序”);

    cnf.printStackTrace();

    } catch (SQLException se) {

    se.printStackTrace();

    }

    }

    }

    示例中可以看到加粗的 SQL 语句跟普通 SQL 语法基本一致,仅仅是表名不一样,这里直接写 TXT 文件名。执行后结果如下:

    2e915de8c1050121e49a48c79ec5d92a.png

    可以看到,使用集算器的 JDBC,完全可以将具有表结构的文本文件直接当成数据表来查询。而集算器除了支持 TXT 格式之外,还支持 CSV、XLS、XLSX 甚至 JSON。另外,集算器自身也有两种数据存储格式:BTX 和 CTX,也是可以直接查询的。

    好,进一步的问题来了,集算器对 SQL 的各种命令能够支持到何种程度呢?

    首先需要说明的是,集算器不是一个数据库产品,所以对 SQL 中一些数据库维护命令是不支持的,比如 Create、Delete 等。

    那么对于 Select 可以支持到什么程度呢?

    Ø 分组统计

    下面来看看 SQL 查询中最普遍的查询,将 student.txt 跟 score.txt 关联起来,并分组统计出每名学生的总成绩。将上面示例代码中加粗的 SQL 语句替换为如下语句:

    SELECT A. 班级,A. 姓名,sum(B. 成绩) 总分 FROM student.txt A JOIN score.txt B ON A. 班级 =B. 班级 AND A. 学生 ID=B. 学生 ID GROUP BY A. 班级,A. 姓名

    执行后,得到每班学生的总分表:

    2ed3154d699f7d35f1fbf60bde6c2e44.png

    可以看到,集算器用 SQL 查询文本时,对于常规的分组、表的联合都没问题。那么带参数的查询,又该如何写呢?

    Ø 使用参数

    只需将执行语句方法块里的代码替换为以下代码:

    /******************* 执行语句方法 ********************/

    CallableStatement cs = null; // 定义 CallableStatement 对象 String

    String sql = “SELECT 姓名, 性别 FROM student.txt WHERE 班级 =?”;

    cs = con.prepareCall(sql);

    cs.setString(1, “一班”);

    rst = cs.executeQuery();

    /******************* 执行语句方法结束 ****************/

    换完后,注意要引入 CallableStatement 类。执行后结果如下:

    ce309b808addf70b4ec3dbf83f5ab117.png

    带参数的句子仍然没问题,调用方法也跟数据库标准是一致的。不过上述结果中,性别显示为数字,集算器 SQL 能不能支持转换语法呢?

    Ø CASE 语句

    将上面的 SQL 语句替换成带 CASE 的 SQL 语句:

    SELECT 姓名,CASE 性别 WHEN 0 THEN ‘男’ ELSE ‘女’ END 性别 FROM student.txt WHERE 班级 =?

    结果如下:

    2bbc92b435ebe276c57937157a169fa5.png

    通过上面这几个例子可以看到,集算器对常用查询的支持还是比较全面的。鉴于篇幅原因,这里就不继续一一列举了。更多集算器查询文件时的详细语法以及函数,请参考文档:http://doc.raqsoft.com.cn/esproc/func/dbquerysql.html#db_sql_

    展开全文
  • 需求场景开发的web办公系统...方案分析方案一:使用Apache POI技术将所有服务器上文档的文本获取后存储到数据库,查找文档时利用sql语句检索数据中存储的文档文本是否包含关键字来搜索到相关文档。然而现在 micros...
  • 标签:一、 问题的提出最近用java开发一个科技项目信息管理系统,里面有一个根据项目申请书的模板填写项目申报信息的功能,有一个科技项目申请书word导出功能。已有的实现方式:采用标准的jsp模板输出实现,简单地说...
  • 使用了 String 类的 indexOf() 方法在字符串中查找子字符串出现的位置,如过存在返回字符串出现的位置(第一位为0),如果不存在返回 -1。方便判断和截取字符串!语法:stringObject.indexOf(searchvalue,fromindex)...
  • 需求场景开发的web办公系统...方案分析方案一:使用Apache POI技术将所有服务器上文档的文本获取后存储到数据库,查找文档时利用sql语句检索数据中存储的文档文本是否包含关键字来搜索到相关文档。然而现在 micros...
  • 您走在正确的轨道上。现在,您只需要提取所需的组,如下所示: final Pattern pattern = Pattern.compile("(.+?)", Pattern.DOTALL);...我将使用XPath查找感兴趣的元素。有关更多信息,请参见Java XPath API。
  • ElasticSearch 常用的查询语句

    千次阅读 2021-03-13 15:21:05
    使用ES时候发现了一篇挺好的文章,收集下来分享给大家。Filter DSLterm 过滤term主要用于精确匹配哪些值,比如数字,日期,布尔值或 not_analyzed 的字符串(未经分析的文本数据类型):{ "term": { "age": 26 }}{ ...
  • 1. Java语言主要由5中符号组成标识符:数字、字母、美元符、下划线(注意不能数字开头)关键字(被Java赋予特殊意义的单词,注意所有关键字都是小写):goto和const保留了它们,但是Java没有使用。main不是关键字,但是被...
  • Java中快捷键

    2021-02-12 18:09:14
    Fond表示字体 size表示字号IDEA的基本配置IDEA中常用的快捷键Intellij IDEA基本快捷键Ctrl+G 跳转到指定行 Ctrl+F4 关闭当前编辑页面Ctrl+F 搜索Alt+回车 导入包,自动修正Ctrl+N 查找类Ctrl+Shift+N 查找文件Ctrl+...
  • 你想使用类似于CSS或jQuery的语法来查找和操作元素。 方法 可以使用方法实现:Element.select(String selector) File input = new File("/tmp/input.html"); Document doc = Jsoup.parse(input, "...
  • ES常用的DSL语句对应的Java代码介绍分组过滤term 过滤terms 过滤范围过滤range 过滤非空过滤exists 和 missing 过滤文本过滤多字段过滤bool查询通配符过滤regexp 查询prefix 查询短语匹配(Phrase Matching)总结 ...
  • java实训报告文本编辑器的设计与实现.pdf还剩7页未读,继续阅读下载文档到电脑,马上远离加班熬夜!亲,喜欢就下载吧,价低环保!内容要点:java实训报告文本编辑器的设计与实现西安心海建站...
  • 这个java类主要是用来查找文件内容的,而不是查找文件名的。主要作用是查找目录下所有文件的文件内容包含特定字符串的文件,并打印输出位置和找到的字符数量。可以定义多个字符进行查找,不需要担心文件格式问题,...
  • java 代码 /** * 读取文本文件(path),获取某字符串(str)出现的次数 * @param path 指定一个文件路径(不能为空) * @param str 目标字符串 * @return 出现次数 */ private static int getStrCount(String ...
  • 比如字符串的查找替换操作、将字符串中的特殊字符转换成Web页中可以安全显示的字符串,转换字符串,从UTF-8到GBK的编码转换,从“GBK”到“ISO8859_1”的字符串转换,大文本块处理(将字符集转成ISO),String型变量...
  • import java.io.*;import java.nio.*;import java.nio.channels.*;import java.nio.charset.*;public class Search {public static void main(String[] args) throws IOException {if(args.length < 2){System....
  • 使用java根据要查找txt文件的内容,在查找到值之后再末尾添加自己的内容main方法读取文本并修改内容返回修改后的list清空文件内容 main方法 public static void main(String[] args) throws IOException { String ...
  • java的基础标签

    2021-02-27 16:22:30
    1.文本格式控制标签文本内容 字体加粗 字体倾斜 强调,语气加强 字体加下划线字体加粗字体居中或换行&nbsp 空格2.内容容器标签......... 标题(自动换行)自己有加粗的作用段落 段落标签(自动换行) 层标签,默认...
  • 文章目录异常处理捕获异常:try、catch 和 finally语句一、pandas是什么?二、使用步骤1.引入库2.读入数据总结 异常处理 异常又称为例外,是特殊的运行错误对象。Java通过面向对象的方法来处理程序错误,为可能...
  • java手册 Java 入门教程 含有1个附件,如下: java-HelloWorld.gif Java 简介 Java 开发环境配置 Java 开发环境配置2 Java 基础语法 含有1个附件,如下: java-HelloWorld.g...
  • 需求场景开发的web办公系统...方案分析方案一:使用Apache POI技术将所有服务器上文档的文本获取后存储到数据库,查找文档时利用sql语句检索数据中存储的文档文本是否包含关键字来搜索到相关文档。然而现在 micros...

空空如也

空空如也

1 2 3 4 5 ... 20
收藏数 72,751
精华内容 29,100
关键字:

如何用java语句写文本的查找

java 订阅