黑马程序员技术交流社区
标题:
谁教我做一下这道题 我不会读取内容和计算结果呀
[打印本页]
作者:
MMM521
时间:
2017-4-10 22:48
标题:
谁教我做一下这道题 我不会读取内容和计算结果呀
1.分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
作者:
预料中的意外
时间:
2017-4-11 00:22
从文件中读取一行字符串,用.split(),括号里填写加减乘除四个运算符中的一个,取的字符数组,用那个啥Integer,转换为数字,然后比较简单了,然后你就会了,对基础班来说,有点超纲了,基础班那次碰到过
作者:
孤舟蓑笠翁
时间:
2017-4-11 00:33
用if语句提取运算符,然后将字符数字转换成int,对应输出即可
作者:
郝永
时间:
2017-4-11 00:46
import java.io.BufferedReader; import java.io.BufferedWriter; import java.io.FileReader; import java.io.FileWriter; import java.io.IOException; /*项目根路径下有个questions.txt文件内容如下: 5+5 150-25 155*155 2555/5 要求:读取内容计算出结果,将结果写入到results.txt文件中*/ public class Duxieyunsuan { public static void main(String[] args) throws IOException { BufferedReader bf = new BufferedReader(new FileReader("questions.txt")); BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt")); String s; int n =0; while((s=bf.readLine())!=null){ n++; String[] s1 = s.split("\\+|\\-|\\*|\\/"); if(n==1){ int a = Integer.parseInt(s1[0]) + Integer.parseInt(s1[1]); bw.write("5+5="+a); bw.newLine(); } if(n==2){ int b = Integer.parseInt(s1[0]) - Integer.parseInt(s1[1]); bw.write("150-25="+b); bw.newLine(); } if(n==3){ int c = Integer.parseInt(s1[0]) * Integer.parseInt(s1[1]); bw.write("155*155="+c); bw.newLine(); } if(n==4){ int d = Integer.parseInt(s1[0]) / Integer.parseInt(s1[1]); bw.write("2555/5="+d); bw.flush(); } } bw.close(); bf.close(); } }
作者:
郝永
时间:
2017-4-11 00:51
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
/*项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中*/
public class Duxieyunsuan {
public static void main(String[] args) throws IOException {
BufferedReader bf = new BufferedReader(new FileReader("questions.txt"));
BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt"));
String s;
int n =0;
while((s=bf.readLine())!=null){
n++;
String[] s1 = s.split("\\+|\\-|\\*|\\/");
if(n==1){
int a = Integer.parseInt(s1[0]) + Integer.parseInt(s1[1]);
bw.write("5+5="+a);
bw.newLine();
}
if(n==2){
int b = Integer.parseInt(s1[0]) - Integer.parseInt(s1[1]);
bw.write("150-25="+b);
bw.newLine();
}
if(n==3){
int c = Integer.parseInt(s1[0]) * Integer.parseInt(s1[1]);
bw.write("155*155="+c);
bw.newLine();
}
if(n==4){
int d = Integer.parseInt(s1[0]) / Integer.parseInt(s1[1]);
bw.write("2555/5="+d);
bw.flush();
}
}
bw.close();
bf.close();
}
}
作者:
不忘初心.
时间:
2017-4-11 07:23
这个用split切不了的。
作者:
情不知所起
时间:
2017-4-11 07:52
用split你把符号都切沒了。先用条件判断。这个字符串包含符号子串,然后切,转化为数字,写对应运算结果
作者:
丨灬随风灬丨
时间:
2017-4-11 09:37
郝永 发表于 2017-4-11 00:51
import java.io.BufferedReader;
import java.io.BufferedWriter;
不错 思路很清晰 先用先读取 每行都用+-*/去切成字符串数组 再将字符串数组中的元素转换成整型 再进行运算 再写入
作者:
铲屎男孩
时间:
2017-4-11 10:15
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
/*
* 1.分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
*/
public class Test03 {
public static void main(String[] args) throws IOException {
//创建集合
ArrayList<String> list = new ArrayList<>();
//创建输入缓冲流
BufferedReader br = new BufferedReader(new FileReader("questions.txt"));
String line;
while ((line = br.readLine()) != null){
list.add(line);
}
//释放资源
br.close();
//创建新集合
ArrayList<String> list1 = new ArrayList<>();
//遍历集合
for (int i = 0; i < list.size(); i++) {
String s =list.get(i);
if (s.contains("+")) {
String[] arr = s.split("\\+");
s += "="+(Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
list1.add(s);
}else if (s.contains("-")) {
String[] arr = s.split("-");
s += "="+(Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]));
list1.add(s);
}else if (s.contains("*")) {
String[] arr = s.split("\\*");
s += "="+(Integer.parseInt(arr[0]) * Integer.parseInt(arr[1]));
list1.add(s);
}else if (s.contains("/")) {
String[] arr = s.split("/");
s += "="+(Integer.parseInt(arr[0]) / Integer.parseInt(arr[1]));
list1.add(s);
}else{
System.out.println("计算有误");
}
//创建输出缓冲流
BufferedWriter bw = new BufferedWriter(new FileWriter("questions.txt"));
for (int j = 0; j < list1.size(); j++) {
bw.write(list1.get(j));
bw.newLine();
}
//释放资源
bw.close();
}
}
}
作者:
亮仔开发
时间:
2017-4-13 22:25
可以使用properties集合,获取键值对,然后相加,
作者:
A1A2A3123
时间:
2018-5-13 13:34
package A0512;
import java.awt.Window;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Test5 {
/*第五题:分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
------------------------------------------------------------------*/
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("questions.txt"));
String line;
while ((line = br.readLine())!=null) {
list.add(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt"));
for (int i = 0;i < list.size(); i++) {
String s = list.get(i);
if (s.contains("+")) {
String[] arr = s.split("\\+");
s += "=" + (Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
}else if (s.contains("-")) {
String[] arr = s.split("\\-");
s += "=" + (Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]));
}else if (s.contains("*")) {
String[] arr = s.split("\\*");
s += "=" + (Integer.parseInt(arr[0]) * Integer.parseInt(arr[1]));
}else if (s.contains("/")) {
String[] arr = s.split("\\/");
s += "=" + (Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
}
System.out.println(s);
bw.write(s);
bw.newLine();
}
bw.close();
}
}
作者:
A1A2A3123
时间:
2018-5-13 13:34
package A0512;
import java.awt.Window;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Test5 {
/*第五题:分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
------------------------------------------------------------------*/
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("questions.txt"));
String line;
while ((line = br.readLine())!=null) {
list.add(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt"));
for (int i = 0;i < list.size(); i++) {
String s = list.get(i);
if (s.contains("+")) {
String[] arr = s.split("\\+");
s += "=" + (Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
}else if (s.contains("-")) {
String[] arr = s.split("\\-");
s += "=" + (Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]));
}else if (s.contains("*")) {
String[] arr = s.split("\\*");
s += "=" + (Integer.parseInt(arr[0]) * Integer.parseInt(arr[1]));
}else if (s.contains("/")) {
String[] arr = s.split("\\/");
s += "=" + (Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
}
System.out.println(s);
bw.write(s);
bw.newLine();
}
bw.close();
}
}
作者:
A1A2A3123
时间:
2018-5-13 13:46
package A0512;
import java.awt.Window;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Test5 {
/*第五题:分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
------------------------------------------------------------------*/
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("questions.txt"));
String line;
while ((line = br.readLine())!=null) {
list.add(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt"));
for (int i = 0;i < list.size(); i++) {
String s = list.get(i);
if (s.contains("+")) {
String[] arr = s.split("\\+");
s += "=" + (Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
}else if (s.contains("-")) {
String[] arr = s.split("\\-");
s += "=" + (Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]));
}else if (s.contains("*")) {
String[] arr = s.split("\\*");
s += "=" + (Integer.parseInt(arr[0]) * Integer.parseInt(arr[1]));
}else if (s.contains("/")) {
String[] arr = s.split("\\/");
s += "=" + (Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
}
System.out.println(s);
bw.write(s);
bw.newLine();
}
bw.close();
}
}
作者:
A1A2A3123
时间:
2018-5-13 13:47
package A0512;
import java.awt.Window;
import java.io.BufferedReader;
import java.io.BufferedWriter;
import java.io.FileReader;
import java.io.FileWriter;
import java.io.IOException;
import java.util.ArrayList;
public class Test5 {
/*第五题:分析以下需求,并用代码实现
项目根路径下有个questions.txt文件内容如下:
5+5
150-25
155*155
2555/5
要求:读取内容计算出结果,将结果写入到results.txt文件中
5+5=10
//....
思考:如果说读取questions.txt文件的内容,算出计算结果,再写入questions.txt文件,即读和写的操作时针对同一个文件,应该如何操作
------------------------------------------------------------------*/
public static void main(String[] args) throws IOException {
ArrayList<String> list = new ArrayList<>();
BufferedReader br = new BufferedReader(new FileReader("questions.txt"));
String line;
while ((line = br.readLine())!=null) {
list.add(line);
}
br.close();
BufferedWriter bw = new BufferedWriter(new FileWriter("results.txt"));
for (int i = 0;i < list.size(); i++) {
String s = list.get(i);
if (s.contains("+")) {
String[] arr = s.split("\\+");
s += "=" + (Integer.parseInt(arr[0]) + Integer.parseInt(arr[1]));
}else if (s.contains("-")) {
String[] arr = s.split("\\-");
s += "=" + (Integer.parseInt(arr[0]) - Integer.parseInt(arr[1]));
}else if (s.contains("*")) {
String[] arr = s.split("\\*");
s += "=" + (Integer.parseInt(arr[0]) * Integer.parseInt(arr[1]));
}else if (s.contains("/")) {
String[] arr = s.split("\\/");
s += "=" + (Double.parseDouble(arr[0]) / Double.parseDouble(arr[1]));
}
System.out.println(s);
bw.write(s);
bw.newLine();
}
bw.close();
}
}
欢迎光临 黑马程序员技术交流社区 (http://bbs.itheima.com/)
黑马程序员IT技术论坛 X3.2