用正则表达式把试题内容及ABCD选项拆分出来,并存入数据库,怎么实现?

zhuzhupenny 2013-03-19 11:01:17
用正则表达式把试题内容及ABCD选项拆分出来,并存入数据库相应的字段,怎么实现?
...全文
1010 27 打赏 收藏 转发到动态 举报
写回复
用AI写文章
27 条回复
切换为时间正序
请发表友善的回复…
发表回复
zhuzhupenny 2013-03-22
  • 打赏
  • 举报
回复
引用 26 楼 biany2 的回复:
1 每次循环读取第5行的时候进行判断,if(temp.trim().split(":").length<2) 继续读取,else continue;读取下一道题目 二维数组可以定义长一点 temp=每行内容 2 或者你用arrayList吧,全部读完以后 每次数据插入的时候取值进行判断,
现在的问题是页面之间中文传值出现的是“??????”,不知道怎么解决的。
biany2 2013-03-22
  • 打赏
  • 举报
回复
1 每次循环读取第5行的时候进行判断,if(temp.trim().split(":").length<2) 继续读取,else continue;读取下一道题目 二维数组可以定义长一点 temp=每行内容 2 或者你用arrayList吧,全部读完以后 每次数据插入的时候取值进行判断,
biany2 2013-03-21
  • 打赏
  • 举报
回复
request.setCharacterEncoding("utf-8");
zhuzhupenny 2013-03-21
  • 打赏
  • 举报
回复
引用 19 楼 biany2 的回复:
mysql的话要设置下编码,具体的问题去网上搜索
解决了,现在页面之间传中文有乱码问题。
zhuzhupenny 2013-03-21
  • 打赏
  • 举报
回复
引用 20 楼 algoogo 的回复:
C# 批量将word文档中有序数据导入数据库 这文章是我写的,有需要的话,我把数据库给你把~
问题解决了。但是现在的问题是页面之间传值有中文乱码。
zhuzhupenny 2013-03-21
  • 打赏
  • 举报
回复
引用 20 楼 algoogo 的回复:
C# 批量将word文档中有序数据导入数据库 这文章是我写的,有需要的话,我把数据库给你把~
如果拆分不定项的多选题,怎么实现。 类似下面的题型,我需要把题目描述和选项拆分出来,并且分别存到数据库各个字段中。 怎么用数组读出1题的6个选项,2题的4个选项 1、下列属于负责制定统一的支付结算法律制度的是( )。 A、中国人民银行总行 B、中国银行总行 C、国家政策性银行 D、商业银行总行 E、总行 F、银行 正确答案:A 2、下列不属于税法构成要素的是( )。 A、税目 B、税率 C、计税依据 D、纳税义务发生时间 正确答案:D
Kingship 2013-03-21
  • 打赏
  • 举报
回复
C# 批量将word文档中有序数据导入数据库 这文章是我写的,有需要的话,我把数据库给你把~
biany2 2013-03-21
  • 打赏
  • 举报
回复
mysql的话要设置下编码,具体的问题去网上搜索
zhuzhupenny 2013-03-21
  • 打赏
  • 举报
回复
引用 23 楼 biany2 的回复:
request.setCharacterEncoding("utf-8");
在页面就是加这三行 <%request.setCharacterEncoding("UTF-8"); response.setContentType("text/html;charset=UTF-8"); response.setCharacterEncoding("UTF-8");%> 但是还是在jsp互相传值之间出现乱码。
biany2 2013-03-20
  • 打赏
  • 举报
回复


package test0320;

import java.io.BufferedReader;
import java.io.File;
import java.io.FileInputStream;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.io.InputStreamReader;

public class TopicStorage {

	/**
	 * @param args
	 * @throws IOException
	 */
	public static void main(String[] args) throws IOException {
		// TODO Auto-generated method stub
		File file = new File("E:\\test\\topic.txt");
		String sbf[][] = new String[100][6];
		try {
			BufferedReader br = new BufferedReader(new InputStreamReader(
					new FileInputStream(file)));
			String str = null;
			int i = 0;
			int j = 0;
			while ((str = br.readLine()) != null) {
				if ("".equals(str.trim()))//空行跳到下行
					continue;
				if (j < 5) {// 题目和选项
					sbf[i][j] = str.substring(2);// 可以写成                 str.substring(str.lastIndexOf("、"))
				}
				if (j == 5) {//答案
					sbf[i][j] = str.substring(8);//同理str.substring(str.lastIndexOf(":"))
				}
				j++;
				if (j == 6) {
					i++;
					j = 0;
				}

			}
			for (int x = 0; x < 100; x++) {
				for (int y = 0; y < 6; y++) {
					System.out.println("++++++++++++  " + sbf[x][y]);

					/***
					 * 调用插入数据库的方法  sbf[x][y]      
					 */
				}
			}
		} catch (FileNotFoundException e) {
			// TODO Auto-generated catch block
			e.printStackTrace();
		}
	}
}

biany2 2013-03-20
  • 打赏
  • 举报
回复
先问你个问题,你的题目是一行一行的,还是打乱的 每个题目之间是否有显著的分隔符 如果是 1、下列属于负责制定统一的支付结算法律制度的是( )。 中国人民银行总行 中国银行总行 国家政策性银行 商业银行总行 A 格式, 就每次读取一行,然后存储,存储方法可以为一维数组,或者二维数组,或者集合都行 我先上课去,等下午发答案你
biany2 2013-03-20
  • 打赏
  • 举报
回复
哥帮你写出来,等我上完日语课
zhuzhupenny 2013-03-20
  • 打赏
  • 举报
回复
引用 16 楼 biany2 的回复:
1因为你是边读边存储到二维数组,所以读之前不知道长度,只能先定义一个足够的长度,要么你打开txt文本看到有多少条就设置多少条 2 要不在存储的之前遍历下文件,看有多少行,设置一个count 3 要不就是全部遍历完了放到String数组里面,然后求余6一条一条存储 如果不考虑性能,就用方法2吧 读两次
我重新改了一下。但是数据库中插入数据时候,出现了乱码。
biany2 2013-03-20
  • 打赏
  • 举报
回复
不过这个可以写成一个方法,带参数的,参数用来传递题目的数量,就可以了
biany2 2013-03-20
  • 打赏
  • 举报
回复
1因为你是边读边存储到二维数组,所以读之前不知道长度,只能先定义一个足够的长度,要么你打开txt文本看到有多少条就设置多少条 2 要不在存储的之前遍历下文件,看有多少行,设置一个count 3 要不就是全部遍历完了放到String数组里面,然后求余6一条一条存储 如果不考虑性能,就用方法2吧 读两次
zhuzhupenny 2013-03-20
  • 打赏
  • 举报
回复
引用 13 楼 biany2 的回复:
先问你个问题,你的题目是一行一行的,还是打乱的

每个题目之间是否有显著的分隔符

如果是
1、下列属于负责制定统一的支付结算法律制度的是( )。
中国人民银行总行
中国银行总行
国家政策性银行
商业银行总行
A

格式,
就每次读取一行,然后存储,存储方法可以为一维数组,或者二维数组,或者集合都行


我先上课去,等下午发答案你
……



二维数组长度怎么设置,如果录入的试题很少,就会出现null


下列属于负责制定统一的支付结算法律制度的是( )。
中国人民银行总行
中国银行总行
国家政策性银行
商业银行总行
A
下列不属于税法构成要素的是( )。
税目
税率
计税依据
纳税义务发生时间
D
null
null
null
null
null
null
null
null
null
null
dracularking 2013-03-19
  • 打赏
  • 举报
回复
引用 5 楼 maomaoandzhuzhu 的回复:
引用 3 楼 abcmsnet 的回复:题目表: 题目ID 内容 选项表: 选项A 选项B 选项C 选项D 题目ID 就是这样的数据库表
简单的就根据ABCD选项标记来找
input.split("[A|B|C|D]、");
得到含5个元素的数组,首元素是题目,其次依序是选项
zhuzhupenny 2013-03-19
  • 打赏
  • 举报
回复
引用 3 楼 abcmsnet 的回复:
题目表: 题目ID 内容 选项表: 选项A 选项B 选项C 选项D 题目ID
就是这样的数据库表
zhuzhupenny 2013-03-19
  • 打赏
  • 举报
回复
类似下面的题型,我需要把题目描述和选项拆分出来,并且分别存到数据库各个字段中。 1、下列属于负责制定统一的支付结算法律制度的是( )。 A、中国人民银行总行 B、中国银行总行 C、国家政策性银行 D、商业银行总行 正确答案:A 2、下列不属于税法构成要素的是( )。 A、税目 B、税率 C、计税依据 D、纳税义务发生时间 正确答案:D 3、会计机构负责人必须具备的条件之一是( )。 A、会计从业资格证书 B、从事会计工作5年以上 C、经济师专业技术职务资格 D、高级会计师专业技术职务资格 正确答案:A
zhuzhupenny 2013-03-19
  • 打赏
  • 举报
回复
引用 10 楼 dracularking 的回复:
引用 9 楼 maomaoandzhuzhu 的回复:引用 8 楼 dracularking 的回复:引用 7 楼 maomaoandzhuzhu 的回复:引用 6 楼 dracularking 的回复:引用 5 楼 maomaoandzhuzhu 的回复:引用 3 楼 abcmsnet 的回复:题目表: 题目ID 内容 选项表: 选项A 选项B 选项C 选项D……
我想要写的是,将txt中的内容放入数据库。需要读txt文件,不是直接添加字符串。需要将txt拆分后放入数据库中各个字段。
加载更多回复(7)

67,513

社区成员

发帖
与我相关
我的任务
社区描述
J2EE只是Java企业应用。我们需要一个跨J2SE/WEB/EJB的微容器,保护我们的业务核心组件(中间件),以延续它的生命力,而不是依赖J2SE/J2EE版本。
社区管理员
  • Java EE
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧