Java语言打开文件之后,读取里面的数据,并且装入字典,可是数据存在重复,所以不能装入字典,问题是怎么解决这个错误
插入的时候先判断库里面是否存在,存在就跳过
所以判断重复,不重复才能加?
不废话直接出代码:
import java.io.*;
public class Mj {
public static void main(String[] args) throws IOException {
float n,m;
BufferedReader buf;
String str;
buf =new BufferedReader(new InputStreamReader(System.in));
System.out.print("请输入字符串1:");
str=buf.readLine();
n=Float.parseFloat(str);
System.out.print("请输入字符串2:");
str=buf.readLine();
m=Float.parseFloat(str);
System.out.println("n/m="+(n/m));
}
}
运行截图如下
由此可以做加减乘运算,都可以的,就是改一下最后的运行方式:
System.out.println("n/m="+(n/m));
就这个就行了。
针对Java如何解决文件读取后装入字典时遇到重复数据的问题,我可以给出以下解决方案:
1.使用Set接口:Set是Java集合框架中的一种基于哈希表的实现类,使用Set可以保证元素的唯一性。因此,可以先将文件读取后的数据装入到Set中,然后再将Set转换成字典。
代码示例:
import java.util.HashSet;
import java.util.Scanner;
import java.util.Set;
import java.util.HashMap;
import java.util.Map;
public class Main {
public static void main(String[] args) {
Map<String, String> dict = new HashMap<String, String>();
Set<String> data = new HashSet<String>();
Scanner input = new Scanner(System.in);
// 读取文件数据
while (input.hasNextLine()) {
String line = input.nextLine().trim();
if (line.length() > 0) {
data.add(line);
}
}
input.close();
// 装入字典
for (String item : data) {
dict.put(item, "");
}
// 输出字典
for (Map.Entry<String, String> entry : dict.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
}
}
2.使用Map接口:Map也是Java集合框架中的一种实现类,使用Map可以保证Key的唯一性。因此,可以将文件读取后的数据装入到Map的Key中,然后Value可以设置为任何值,比如空字符串。
代码示例:
import java.util.Scanner;
import java.util.Map;
import java.util.HashMap;
public class Main {
public static void main(String[] args) {
Map<String, String> dict = new HashMap<String, String>();
Scanner input = new Scanner(System.in);
// 读取文件数据
while (input.hasNextLine()) {
String line = input.nextLine().trim();
if (line.length() > 0) {
dict.put(line, "");
}
}
input.close();
// 输出字典
for (Map.Entry<String, String> entry : dict.entrySet()) {
System.out.println(entry.getKey() + " => " + entry.getValue());
}
}
}
以上就是我针对Java如何解决文件读取后装入字典时遇到重复数据的问题给出的解决方案,希望对您有所帮助。