Ⅰ 用java編寫程序,對分行輸入的若干字元串按字典序(由小到大)進行排序並輸出。
package special7_2;
import java.util.*;
public class Special7_2 {
public static void main(String[] args) {
// TODO Auto-generated method stub
String str="";
Scanner scan=new Scanner(System.in);
ArrayList<String> arraylist=new ArrayList<String>();
while(!str.equals("#")){
str=scan.nextLine();
arraylist.add(str);
}
arraylist.remove("#");
Object[]arr=arraylist.toArray();
for(int i=0;i<arraylist.size()-1;i++){
//String str1=(String)arr[i];
for(int j=0;j<arraylist.size()-1-i;j++){
if(((String) arr[j]).compareTo((String) arr[j+1])>0){
//swap(arr,i,j);
String temp;
temp=(String) arr[j];
arr[j]=arr[j+1];
arr[j+1]=temp;
}
}
}
for(int i=0;i<arraylist.size();i++){
//String str1=(String)arr[i];
System.out.println(arr[i]);
}
}
/*private static void swap(Object[] arra, int i, int j) {
// TODO Auto-generated method stub
String temp = (String) arra[i];
arra[i] = arra[j];
arra[j] = temp;
}*/
}
Ⅱ 5種水果,用java來按照字典順序排列輸出
public class Fruit {
String[] fruits=new String[5];
public void inputfruit(){
Scanner input=new Scanner(System.in);
for(int i=0;i<fruits.length;i++){
System.out.print("請輸入第"+(i+1)+"種水果:");
fruits[i]=input.next();
}
}
public String[] getNames(){
Arrays.sort(fruits);
return fruits;
}
}
public static void main(String[] args) {
// TODO Auto-generated method stub
Fruit sg=new Fruit();
String[] newFruits=new String[5];
sg.inputfruit();
newFruits=sg.getNames();
System.out.println("這些水果在字典種出現的順序是:");
for(int i=0;i<newFruits.length;i++){
if(newFruits[i]!=null){
System.out.print(newFruits[i]+"\t");
}
}
}
Ⅲ 如何使用java編一個字典
省力點的就直接調用第三方翻譯介面,然後可以保存到本地資料庫,本地資料庫也提供維護功能。 簡單點的就只自己維護資料庫,這是個人意見哦
Ⅳ 求一個java排序的程序!字典順序的!
importjava.util.Arrays;
importjava.util.Scanner;
//必須實現Comparable介面
<Word>{
privatefinalStringword;
publicStringgetWord(){
returnword;
}
//構造器什麼的無視吧
publicWord(Stringword){
if(word==null)
thrownewNullPointerException("不可以創造空單詞!");
this.word=word;
}
//實現compareTo方法.主要的排序思路在這里
@Override
publicintcompareTo(Wordtarget){
if(target==null)
return1;
if(target.getWord().equalsIgnoreCase(getWord()))
return0;
char[]selfLetters=getWord().toLowerCase().toCharArray();
char[]targetLetters=target.getWord().toLowerCase().toCharArray();
intselfLength=selfLetters.length;
inttargeLength=targetLetters.length;
intminLength=Math.min(selfLength,targeLength);
for(intindex=0;index<minLength;index++){
if(selfLetters[index]>targetLetters[index]){
return1;
}
elseif(selfLetters[index]<targetLetters[index]){
return-1;
}
continue;
}
returnselfLength>targeLength?1:-1;
}
//重寫ToString方法以便列印輸出
@Override
publicStringtoString(){
returnword;
}
//主方法.用來查看效果
publicstaticvoidmain(String[]args){
intsize=5;//測試用的數組長度(單詞數);
//創造一個Word的數組用來保存輸入的單詞
Word[]words=newWord[size];
Scannersc=newScanner(System.in);
for(inti=0;i<size;i++)
{
System.out.println("請輸入第"+(i+1)+"個單詞");
words[i]=newWord(sc.nextLine());
}
sc.close();//關閉流
System.out.println("排序結果為:");
//使用Arrays.sort方法排序,sort對自動調用你的compareTo方法來比較
Arrays.sort(words);
//列印出結果
System.out.println(Arrays.toString(words));
}
}
這是我剛寫的。測試結果還可以。邏輯可能不是很嚴謹 不過作為作業應該應付足夠了
Ⅳ java字典怎麼使用
Map可以實現類似資料庫的功能。比如一個人的姓名和年齡信息你可以存在一個Map裡面,就像這樣: Map map = new HashMap(); map.put("張三", 40)
Ⅵ 如何用java中的哈希表類做一個查字典程序
比如:單詞word,word的解釋是:單詞
Hashtable dictionary = new Hashtable();
dictionary.put("word", "單詞");
查單詞時:dictionary.get("word");
Ⅶ java我這個字典的程序哪裡錯了
已修改,復制粘貼即可
importjava.awt.BorderLayout;
importjava.awt.event.ActionEvent;
importjava.awt.event.ActionListener;
importjava.sql.Connection;
importjava.sql.DriverManager;
importjava.sql.ResultSet;
importjava.sql.SQLException;
importjava.sql.Statement;
importjavax.swing.BorderFactory;
importjavax.swing.JButton;
importjavax.swing.JFrame;
importjavax.swing.JPanel;
importjavax.swing.JScrollPane;
importjavax.swing.JTextArea;
importjavax.swing.JTextField;
{
=1L;
JTextFieldtxf=newJTextField(20);
JTextAreajt=newJTextArea();
JButtonbtn1=newJButton("查詢");
Zidian()
{
setTitle("Search");
setBounds(400,300,450,350);
JPanelpnl4=newJPanel();
pnl4.setBorder(BorderFactory.createTitledBorder("Search"));
pnl4.add(txf);
pnl4.add(btn1);
btn1.addActionListener(this);
JPanelpnl5=newJPanel(newBorderLayout());
pnl5.setBorder(BorderFactory.createTitledBorder("Result"));
jt.setWrapStyleWord(true);
jt.setLineWrap(true);
pnl5.add(newJScrollPane(jt),BorderLayout.CENTER);
JPanelall=newJPanel();
all.setLayout(newBorderLayout());
all.add(pnl4,BorderLayout.NORTH);
all.add(pnl5,BorderLayout.CENTER);
add(all);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
setVisible(true);
}
publicvoidactionPerformed(ActionEvente)
{
if(e.getSource()==btn1)
{
Stringstr=txf.getText();
Stringsql="select*fromchinesewherecharsoundlike'%"+str+"%'";
Connectionconn=null;
Statementstmt=null;
ResultSetrs=null;
try
{
Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnection("jdbc:mysql://localhost:3306/japan?user=root&password=123");
stmt=conn.createStatement();
rs=stmt.executeQuery(sql);
jt.setText("");
while(rs.next())
{
jt.append(newString(rs.getString("charname").getBytes("iso-8859-1"),"gb2312")+" ");
}
}
catch(Exceptioneq)
{
eq.printStackTrace();
}
finally
{
try
{
if(null!=rs)
{
rs.close();
}
if(null!=stmt)
{
stmt.close();
}
if(null!=conn)
{
conn.close();
}
}
catch(SQLExceptionignore)
{}
}
}
}
publicstaticvoidmain(String[]args)
{
newZidian();
}
}
Ⅷ 請問怎麼用JAVA編寫英漢字典程序
你要源碼的話,200分是不夠的。如果你給我1000塊錢,我會幫你把這個程序完完全全的寫出來。
反正沒什麼難度,就是體力活,大概3天時間可以寫完。1000塊錢剛好是我三天的工資。
----------
我不要你的分,但可以告訴你,其實這個除了繁瑣,沒有任何技術難度。
第一,在資料庫裡面將字典錄入,一張表就好
第二,編寫查詢界面,查詢資料庫裡面的表,找出對應的結果。
第三,輸入一個單詞的一部分,系統提示一系列可能的單詞,所白了也是一個查詢資料庫,沒敲一個鍵,系統檢測當前已經輸入的字,然後取資料庫裡面找到前端匹配的所有單詞的列表,顯示給用戶。
如果不用資料庫,就用xml文件來存儲也是可以的。
Ⅸ 輸入5種水果的英文名稱,用java編寫一個程序,輸出這些水果名稱按照字典出現的先後循序輸出
一、思路:
1、建立一個String數組,用來存儲用戶輸入的水果名字。
2、按字典出現的先後順序即比較字元串大小。可以使用到String對象的compareTo()方法。
3、對比大小後,升序輸出。
二、實現:
1、定義輸入水果名字的個數,用來確定數組的大小,修改此值可以修改數組的大小。
2、用戶輸入,用循環實現接收,並存儲到數組中。
3、將數據對比大小,按升序排列。使用最簡單的冒泡排序法(麻煩易錯)或Java的工具類(簡單高效)。
4、輸出排序後的數組。
實現代碼:
//java代碼:輸入五種水果的英文,按字典出現的先後順序循環輸出。
importjava.util.Arrays;
importjava.util.Scanner;
publicclassCompareTest{
/**
*一、思路:
*1、建立一個String數組,用來存儲用戶輸入的水果名字。
*2、按字典出現的先後順序即比較字元串大小。可以使用到String對象的compareTo()方法。
*3、對比大小後,升序輸出。
*二、實現:
*1、定義輸入水果名字的個數,用來確定數組的大小,修改此值可以修改數組的大小。
*2、用戶輸入,用循環實現接收,並存儲到數組中。
*3、將數據對比大小,按升序排列。使用最簡單的冒泡排序法(麻煩易錯)或Java的工具類(簡單高效)。
*4、輸出排序後的數組。
**/
//定義用戶輸入數據的個數,修改此值可以修改個數及數據接收數組的大小
publicstaticfinalintCOUNT=5;
publicstaticvoidmain(String[]args){
//TODOAuto-generatedmethodstub
//定義接收用戶輸入數據的數組
String[]fruits=newString[COUNT];
Scannerreader=newScanner(System.in);
//接收用戶輸入的數據
System.out.println("請輸入"+COUNT+"個水果的英文名字:");
for(inti=0;i<COUNT;i++){
fruits[i]=reader.next();
}
reader.close();
//比較數組中數據的大小,並按升序排列。冒泡法
for(inti=1;i<=(COUNT-1);i++){
for(intn=0;n<(COUNT-i);n++){
if(fruits[n].compareTo(fruits[n+1])>0){
Stringtemp=null;
temp=fruits[n];
fruits[n]=fruits[n+1];
fruits[n+1]=temp;
}
}
}
//不使用冒泡排序,使用java自帶的工具類,一句話即可,排序由底層自動完成
//Arrays.sort(fruits);
//輸出排序後的數組,即為字典中的出現順序
System.out.println("這些水果的英文名在字典中出現的順序是:");
for(inti=0;i<COUNT;i++){
System.out.print(fruits[i]+"");
}
System.out.println();
}
}
運行結果圖:
應注意:程序中使用的比較方式是區分大小寫的,如果是不區分大小寫的比較方式,應使用compareToIgnoreCase()方法。
Ⅹ 如何用JAVA開發《英漢字典》程序
1. 由於單詞本固定,無需動態改變,用String數組就可以了,不用map也非常快了。
2. 將各個單詞提前排序,查詢時就可以用2分法,復雜度很低。
3. 自己估算一下單詞數量,決定是否一次讀入內存。
4. 只用到數據結構和演算法方面很基礎的東西,沒什麼特別的。可能java界面編程需要稍稍入門即可。netbeans做界面也很好用,接近於vb了。