给单词表排个序 会的来帮个忙

问题描述

同学给了个单词表说让给重新排个序要求是:在一组单词中每个单词的首字母要不同,手动太慢了想写个程序我能想到的最笨的办法就是把单词表按首字母分成了26组每个组作为一个文件然后做个循环每次从一个文件组中读一个单词放到一个新的文件中,然后就是做的时候发现依次读取文件搞不太明白,把文件作为一个数组该怎么操作不太会,知道的朋友说一下或者有好的实现方法也说一下有程序更好呵呵谢谢大家了!

解决方案

解决方案二:
文件不大的话,一起读进来,用split()分割成数组再操作
解决方案三:
自己写个类实现Comparator<Object>接口自己在publicintcompare(Objecto1,Objecto2){取单词首字母比较}将所有的要排序的单词放到list里面调用Collections.sort(list,);要倒序排在reverse一下就OK了
解决方案四:
因为他给的单词表是类似于这样的:absurda.荒谬的,荒诞的,荒唐可笑的;不合理的academica.学院的,大学的;学术性的;理论的acceleratev.使加速,使增速,促进vi.加快,增加accessoryn.附件,附属品;(为全套衣服增加美感的)服饰accidentala.偶然的;意外的;无意中的acclaimv.向…欢呼,公认n.欢呼,喝彩,称赞不是单纯只有单词,所以感到有点难搞,上面说的那些方法对于这种情况能不能用
解决方案五:
如果文件里就是一行一个的好分,直接用换行符区分
解决方案六:
只要对前面的字母排序就可以啊!!除非单词相同否则不会出现单词相同!!
解决方案七:
实现Comparator可以用的...
解决方案八:
给你我以前做过的例子,给你参考一下publicclassSortUtil{/***对PO对象列表进行排序.**@paramlist*ListPO对象列表*@paramattr*String用户属性*@paramreverseOrder*booleantrue表示降序,false表示升序**@return*ListPO对象列表*/publicstaticListsort(Listlist,Stringattr,booleanreverseOrder){if(reverseOrder){//降序Comparatorcomp=Collections.reverseOrder(newPOComparator(attr));Collections.sort(list,comp);}else{Collections.sort(list,newPOComparator(attr));}returnlist;}}

publicclassPOComparatorimplementsComparator{/***排序属性,比如uidaleph.*/privateStringsorkIndex="";/****@paramsorkIndex.*/publicPOComparator(StringsorkIndex){this.sorkIndex=sorkIndex;}/****@paramo1*POthefirstobjecttobecompared.*@paramo2*POthesecondobjecttobecompared.*@return*anegativeinteger,zero,orapositiveintegerasthe*firstargumentislessthan,equalto,orgreaterthanthe*second.**/publicintcompare(Objecto1,Objecto2){if(o1instanceofPO){POp1=(PO)o1;POp2=(PO)o2;return((String)p1.get(sorkIndex)).compareTo((String)p2.get(sorkIndex));}elseif(o1instanceofHashtable){Hashtablep1=(Hashtable)o1;Hashtablep2=(Hashtable)o2;return((String)p1.get(sorkIndex)).compareTo((String)p2.get(sorkIndex));}elseif(o1instanceofString){return((String)o1).compareTo((String)o2);}return0;}}

解决方案九:
用jAVA自带的快排
解决方案十:
以下是代码实现,假定你的a.txt文件内容为:bbd爱上了姑娘说sgdasxcldl地发光光fhdgdahdlenml萨拉打官司的thggjhleils老顾客zfhfghsflsejt书送达两个sdggxaejlkng寺开梁殿阁afshc此文件为输入文件,放在项目当前目录下;packageShurudanci;importjava.util.*;importjava.io.*;publicclassShurudanci{publicstaticvoidmain(String[]args)throwsException{BufferedReaderbr=newBufferedReader(newFileReader("a.txt"));Stringstr=null;TreeSetts=newTreeSet();HashSeths=newHashSet();System.out.println("原先的集合为:");while((str=br.readLine())!=null){String[]str02=str.split("");Stringstr03=str02[0];System.out.println(str);ts.add(str03);hs.add(str);}System.out.println("------------------------------------");System.out.println("后来的集合为:");for(Objectobj:ts){Stringstr05=(String)obj;booleanbl=false;Stringstr06=null;for(Objectobj03:hs){str06=(String)obj03;bl=str06.startsWith(str05);if(bl){System.out.println(str06);}}}}}

代码经过调试,可以正确输出结果;
解决方案十一:
结果是:原先的集合为:bbd爱上了姑娘说sgdasxcldl地发光光fhdgdahdlenml萨拉打官司的thggjhleils老顾客zfhfghsflsejt书送达两个sdggxaejlkng寺开梁殿阁afshc------------------------------------后来的集合为:aejlkng寺开梁殿阁afshcahdlenml萨拉打官司的thggjbbd爱上了姑娘说sgdasflsejt书送达两个sdggxhleils老顾客zfhfghsxcldl地发光光fhdgd
解决方案十二:
如果选用的集合是TreeSet,只要是正常排序,也就是从小到大,它自动会排列顺序,所以不必实现comparator接口方法里的compare()方法;本例就是利用了这一点省去了排序,自动排序就利用了这一点;

时间: 2024-09-20 17:35:08

给单词表排个序 会的来帮个忙的相关文章

用gridview排班,大神们帮一下忙阿。。

问题描述 如图,我要做成这种效果,动态排班,可以按一个月排,可以按一个星期排,还可以排时间段排,目前图片上显示的是按一个月排.第一行,日期选择一个排班类型,比如说休息,下面对应的列全部自动改成休息,应该怎么做?? 解决方案 本帖最后由 hanxiaoting520 于 2014-01-18 22:31:18 编辑解决方案二:自己先顶一下.解决方案三:没人吗?大神们帮忙啊..解决方案四:晕了,没人回复阿.解决方案五:无非就是循环嘛,你可以用js在客户端排,然后提交,也可以在服务器上排,然后重新绑定

[经典面试题]输入一个排好序的数组的一个旋转,输出旋转数组的最小元素。

[题目] 把一个数组最开始的若干个元素搬到数组的末尾,我们称之为数组的旋转.输入一个排好序的数组的一个旋转,输出旋转数组的最小元素.例如数组{3, 4, 5, 1, 2}为{1, 2, 3, 4, 5}的一个旋转,该数组的最小值为1. [分析] 这道题最直观的解法并不难.从头到尾遍历数组一次,就能找出最小的元素,时间复杂度显然是O(N).但这个思路没有利用输入数组的特性,我们应该能找到更好的解法.  我们注意到旋转之后的数组实际上可以划分为两个排序的子数组,而且前面的子数组的元素都大于或者等于后

link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么?

问题描述 link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么? link中是不是单链表不能逆序输出?只有双向链表才可以,这么说正确么? 解决方案 也可以啊,再定义一个堆栈,遍历链表,将值放进去,然后再输出堆栈.

带你制作百词斩单词表读写插件

       上篇博文简单的介绍了一下Chrome插件,今天就与大家分享一下我做的这款有实际意义的插件吧.        做这款插件主要是用百词斩网站进行单词学习时,遇到的一点点闹心事儿.在单词表中不能听发音,也不能练习拼写,所以才忍无可忍的做了这么一款插件.自我感觉还是很不错的.       先来看看效果吧: (原网站格式) (安装插件后,多了一个按钮) (点击change model后的效果,可显隐单词,可听发音,可检测拼写,看动画效果)        做这个插件,主要应用了content

java实现单链表之逆序_java

下面一段代码准确的介绍了java实现单链表逆序,具体内容就不做详解了,有需要的朋友可以直接拷贝了 package com.ckw.mianshi; /** * java 实现单链表的逆序 * @author Administrator * */ public class SingleLinkedReverse { class Node{ int data; Node next; public Node(int data){ this.data = data; } } public static

算法-快速排序这段代码有问题吗?为什么排不好序呢?

问题描述 快速排序这段代码有问题吗?为什么排不好序呢? #include<stdio.h> void quicksort(int A[],int p,int r); int partition(int A[],int p,int r); void swap(int *a,int *b); int main(){ int array[5]; int num; printf("请输入数组长度:n"); scanf("%d",&num); printf

Excel中让数据分列排好序

如果你在将网上查到的成绩数据复制到Excel中时,所有数据只能在一列显示,可以按条件让它进行"分列". ①首先选中需要分割的数据区域,如A列. ②选择菜单中的"数据",在弹出的下拉菜单中选择"分列". ③在弹出的"文本分列向导"对话框中选择"固定宽度",然后点击"下一步". ④在需要分割的位置单击鼠标之后,就会出现"分列线". ⑤按默认的方式单击"下一步&q

利用栈来实现单链表的逆序

#include <stdio.h># include<stdlib.h>#define stacksize 100typedef int datatype;typedef struct{   datatype data[stacksize];        int  top;}seqstack;typedef struct node{   datatype  data;   struct node *next;}listnode;typedef listnode *linklis

IT人的华语音乐歌单:等我遇见你,气球会帮我告白

你确定不来秀出你的歌单么???最新相关有奖话题:啪啪啪!敲代码时你喜欢听什么音乐? 对于IT人而言,工作中永远都是机遇与挑战并存的,有些机遇把握不住就可能永远失去,有些挑战应对不了就可能被彻底击垮.IT行业的压力大,而IT人往往都是背井离乡,到大城市打拼,孤独和漂泊感便成为一种常态.孤独的人最怕夜的到来,白天可以让人的注意力都转移到工作或日常琐事上来,而当夜晚降临,白天的各种感受都无处寄托,除非你可以让自己的大脑一直忙碌直到生理疲乏.然而,任何人的心灵都是需要抚慰与按摩的,尤其是当你感觉孤独时.