求助:java array编程!!! 50
把所有由6个字母组成的单词列出来,存成一个TXT文件。怎样编辑一个JAVA程序,找出其中所有字母相同的单词???急!!!有正确答案的追加分!!!!所有字母都相同的词,意思...
把所有由6个字母组成的单词列出来,存成一个TXT文件。怎样编辑一个JAVA程序,找出其中所有字母相同的单词???急!!!有正确答案的追加分!!!!
所有字母都相同的词,意思就是两个单词拥有相同的字母组成。例如,abcdef==acbdef acdbef等等,但是一定要是单词,ACCEPT就是单词,ABCDEF就不是单词。至于6位字母组成的单词有哪些,就是LIST里已经给的了。要LIST的密我,麻烦帮我做一下。谢谢!!!! 要有final String inputFileName = "C:\\Document and Settings\\Student.Student\\Desktop\\input.txt";这种ARRAY语句作为读取和输出。输出的要单独新存为一个TXT文件。
老师给的思路是,从TXT文件里先读取单词,然后逐个字母与其他单词对比,做判断和循环,然后输出的是所有相同的项,另存为一个新的TXT文件。
语句用的越简单越好。 展开
所有字母都相同的词,意思就是两个单词拥有相同的字母组成。例如,abcdef==acbdef acdbef等等,但是一定要是单词,ACCEPT就是单词,ABCDEF就不是单词。至于6位字母组成的单词有哪些,就是LIST里已经给的了。要LIST的密我,麻烦帮我做一下。谢谢!!!! 要有final String inputFileName = "C:\\Document and Settings\\Student.Student\\Desktop\\input.txt";这种ARRAY语句作为读取和输出。输出的要单独新存为一个TXT文件。
老师给的思路是,从TXT文件里先读取单词,然后逐个字母与其他单词对比,做判断和循环,然后输出的是所有相同的项,另存为一个新的TXT文件。
语句用的越简单越好。 展开
5个回答
展开全部
package Test;
import java.util.ArrayList;
import java.util.List;
public class ArrayTest {
private static List<List<Letter>> letterList = new ArrayList<List<Letter>>();// 匹配的数据
private static List<Letter> nonList = new ArrayList<Letter>();// 未匹配的数据
public static void main(String[] args) {
String[] input = new String[] { "abc", "cba", "sdjf", "dfgh", "ghfd",
"fghd", "jsfn", "sfnj" };
boolean isExist = false;
for (int i = 0; i < input.length; i++) {
isExist = false;
Letter letter = new Letter(input[i]);
for (int j = 0; j < letterList.size(); j++) {
List<Letter> list = letterList.get(j);
if (letter.equals(list.get(0))) {
list.add(letter);
isExist = true;
break;
}
}
if(!isExist){
for (int j = 0; j < nonList.size(); j++) {
Letter letter2 = nonList.get(j);
if (letter.equals(letter2)) {
List<Letter> list = new ArrayList<Letter>();
list.add(letter);
list.add(letter2);
letterList.add(list);
break;
}
}
nonList.add(letter);
}
}
for (int i = 0; i < letterList.size(); i++) {
List<Letter> list = letterList.get(i);
System.out.print(list.get(0) + ":");
for (int j = 1; j < list.size(); j++) {
System.out.print(list.get(j) + " ");
}
System.out.println();
}
}
}
class Letter {
public String string;
public int[] numbers = new int[26];// 字符的次数
public Letter(String string) {
this.string = string;
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
numbers[(int) (c - 'a')]++;
}
}
public boolean equals(Object obj) {
Letter out = (Letter) obj;
int[] outNumber = out.numbers;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] != outNumber[i]) {
return false;
}
}
return true;
}
public String toString() {
return this.string;
}
}
import java.util.ArrayList;
import java.util.List;
public class ArrayTest {
private static List<List<Letter>> letterList = new ArrayList<List<Letter>>();// 匹配的数据
private static List<Letter> nonList = new ArrayList<Letter>();// 未匹配的数据
public static void main(String[] args) {
String[] input = new String[] { "abc", "cba", "sdjf", "dfgh", "ghfd",
"fghd", "jsfn", "sfnj" };
boolean isExist = false;
for (int i = 0; i < input.length; i++) {
isExist = false;
Letter letter = new Letter(input[i]);
for (int j = 0; j < letterList.size(); j++) {
List<Letter> list = letterList.get(j);
if (letter.equals(list.get(0))) {
list.add(letter);
isExist = true;
break;
}
}
if(!isExist){
for (int j = 0; j < nonList.size(); j++) {
Letter letter2 = nonList.get(j);
if (letter.equals(letter2)) {
List<Letter> list = new ArrayList<Letter>();
list.add(letter);
list.add(letter2);
letterList.add(list);
break;
}
}
nonList.add(letter);
}
}
for (int i = 0; i < letterList.size(); i++) {
List<Letter> list = letterList.get(i);
System.out.print(list.get(0) + ":");
for (int j = 1; j < list.size(); j++) {
System.out.print(list.get(j) + " ");
}
System.out.println();
}
}
}
class Letter {
public String string;
public int[] numbers = new int[26];// 字符的次数
public Letter(String string) {
this.string = string;
for (int i = 0; i < string.length(); i++) {
char c = string.charAt(i);
numbers[(int) (c - 'a')]++;
}
}
public boolean equals(Object obj) {
Letter out = (Letter) obj;
int[] outNumber = out.numbers;
for (int i = 0; i < numbers.length; i++) {
if (numbers[i] != outNumber[i]) {
return false;
}
}
return true;
}
public String toString() {
return this.string;
}
}
展开全部
我感觉这个句子很有歧义··
搞不懂什么意思··
搞不懂什么意思··
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
用正则表达示 "(\\w)(\\1){5}"
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
import java.util.ArrayList;
import java.util.List;
import java.io.File;
import java.io.FileOutputStream;
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
//给集合中添加你的单词
list.add("abc");
list.add("abcdef");
list.add("abcdefg");
list.add("aaaaaa");
list.add("bbbbbb");
list.add("cccccc");
list.add("dddddd");
//循环遍历集合中的单词对象
for (int i = 0; i < list.size(); i++) {
String str=(String) list.get(i);
//判断单词长度为6的
if (str.length()==6) {
try {
FileOutputStream os = new FileOutputStream(new File("D://输出的文件.txt"), true);
os.write((str + "\n").getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
import java.util.List;
import java.io.File;
import java.io.FileOutputStream;
public class Test {
public static void main(String[] args) {
List list = new ArrayList();
//给集合中添加你的单词
list.add("abc");
list.add("abcdef");
list.add("abcdefg");
list.add("aaaaaa");
list.add("bbbbbb");
list.add("cccccc");
list.add("dddddd");
//循环遍历集合中的单词对象
for (int i = 0; i < list.size(); i++) {
String str=(String) list.get(i);
//判断单词长度为6的
if (str.length()==6) {
try {
FileOutputStream os = new FileOutputStream(new File("D://输出的文件.txt"), true);
os.write((str + "\n").getBytes());
} catch (Exception e) {
e.printStackTrace();
}
}
}
}
}
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
展开全部
题目不是太清晰,什么叫“所有字母相同的单词”,是一楼说的那种aaaaaa吗?楼主最好做一下问题补充
////////////////////
嗯,给楼主建议一个思路
做个hashmap。
1.把所有的单词挨个取出来,最小写字母化
2.归一化,就是把“adcbef”转成abcdef按字母顺序排列,可能关键在这里,方法选好
3.往hashmap里面放的时候做判断
////////////////////////////
char[]做单词的归一
hashtable做重复判断
////////////////////
嗯,给楼主建议一个思路
做个hashmap。
1.把所有的单词挨个取出来,最小写字母化
2.归一化,就是把“adcbef”转成abcdef按字母顺序排列,可能关键在这里,方法选好
3.往hashmap里面放的时候做判断
////////////////////////////
char[]做单词的归一
hashtable做重复判断
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询