我刚开始使用Java编程,为了帮助我学习,我创建了一个简单的电话通讯录。代码按预期运行,但如果更高级的程序员认为我应该以不同的方式运行,我会对此感兴趣。
import com.mongodb.MongoClient;
import com.mongodb.MongoException;
import com.mongodb.DB;
import com.mongodb.DBCollection;
import com.mongodb.BasicDBObject;
import com.mongodb.DBCursor;
import java.net.UnknownHostException;
import java.util.Scanner;
import org.bson.types.ObjectId;
public class MongodbPhonebook {
public static void main(String[] args) {
boolean boolContinue = true;
String stringCommand;
Scanner input = new Scanner(System.in);
try {
MongoClient mongoClient = new MongoClient();
DB db = mongoClient.getDB( "myphonelist" );
DBCollection coll = db.getCollection("myphonelist");
do {
System.out.println("Enter command (add, find, show, quit): ");
stringCommand = input.nextLine();
if(stringCommand.equals("quit")){
boolContinue = false;
}
else if(stringCommand.equals("show")){
displayAll(coll);
}
else if(stringCommand.equals("add")){
insertNumber(coll);
}
else if(stringCommand.equals("find")){
findNumber(coll);
}
else {
System.out.println("Unknown command!");
}
} while(boolContinue == true);
}
catch (UnknownHostException e) {
e.printStackTrace();
}
catch (MongoException e) {
e.printStackTrace();
}
}
public static void displayAll(DBCollection collDisplay) {
DBCursor cursor = collDisplay.find();
try {
while(cursor.hasNext()) {
System.out.println(cursor.next());
}
} finally {
cursor.close();
}
return;
}
public static void insertNumber (DBCollection collInsert) {
Scanner input = new Scanner(System.in);
ObjectId stringID;
String stringName = "";
String stringNumber = "";
System.out.println("Enter name: ");
stringName = input.nextLine();
System.out.println("Enter number: ");
stringNumber = input.nextLine();
BasicDBObject doc = new BasicDBObject("name", stringName).
append("number", stringNumber);
collInsert.insert(doc);
stringID = (ObjectId)doc.get( "_id" );
System.out.println("Result: " + stringID.toString());
return;
}
public static void findNumber (DBCollection collFind) {
Scanner input = new Scanner(System.in);
String stringName = "";
System.out.println("Enter name: ");
stringName = input.nextLine();
BasicDBObject query = new BasicDBObject("name", stringName);
DBCursor cursor = collFind.find();
cursor = collFind.find(query);
try {
while(cursor.hasNext()) {
System.out.println("found " + cursor.next());
}
} finally {
cursor.close();
}
}
}发布于 2013-05-10 16:05:51
我不知道您使用的JDK是哪个版本,但是在Java 7中,他们在字符串变量上引入了switch语句,而不仅仅是整数。相反,您的代码可以这样读,以使其更具可读性。
do {
System.out.println("Enter command (add, find, show, quit): ");
stringCommand = input.nextLine();
switch(stringCommand)
{
case "quit":
boolContinue = false;
break;
case "show":
displayAll(coll);
break;
case "add":
insertNumber(coll);
break;
case "find":
findNumber(coll);
break;
default:
System.out.println("Unknown command!");
break;
}
} while(boolContinue); // A boolean variable by itself can be used as an expression. The == true expression is redundant.https://codereview.stackexchange.com/questions/26023
复制相似问题