1. 用java 輸入兩個日期判斷分別是什麼星座
/**
* 根據月日判斷星座
* @param month
* @param day
* @return int
*/
public static String getConstellation(int m,int d){
final String[] constellationArr = {"魔羯座" ,"水瓶座", "雙魚座", "牡羊座", "金牛座", "雙子座", "巨蟹座", "獅子座", "處女座", "天秤座","天蠍座", "射手座", "魔羯座" };
final int[] constellationEdgeDay = { 20,18,20,20,20,21,22,22,22,22,21,21};
int month=m;
int day =d;
if (day <= constellationEdgeDay[month-1]) {
month = month - 1;
}
if (month >= 0) {
return constellationArr[month];
}
//default to return 魔羯
return constellationArr[11];
}
2. java項目中如何實現多選項的模糊或者精確查詢
StringBuffersb
可以實現的,多個,輸入,判斷每個條件是否為空。
如果不為空append進sb,具體,你自己決定,反正,查詢功能上,查詢一條和多條。機理是類似的
3. java 時間段查詢
不一定非要在sql中判斷吧,可以先取兩個值,然後在java類型判斷,通過拼接sql的形式進行查詢版,如權:if(存在開始時間,不存在結束時間||存在結束時間,不存在開始時間){
select * from 表名where 日期欄位 = '時間'
}else if(都存在){
select * from 表名 where 日期欄位 between 開始時間' and '結束時間'
}
4. java基於兩個整數的簡單計算
跑一下下面的代碼吧。知道的排版實在是太虐了,你自己在IDE里排一下吧。我測試了一下,符合你的需求。
import java.util.Scanner;
public class MathMain {
public static void main(String[] args) {
long sum = 0;
long proct = 0;
try {
Scanner sc = new Scanner(System.in);
System.out.println("請輸入一個整數begin:");
long begin = sc.nextLong();
while (begin<1 || begin>Long.MAX_VALUE) {
System.out.println("請輸入long范圍內的正整數!");
System.out.println("請重新輸入一個整數begin:");
begin = sc.nextLong();
}
System.out.println("請輸入一個整數end:");
long end = sc.nextLong();
while (end<1 || end>Long.MAX_VALUE) {
System.out.println("請輸入long范圍內的正整數!");
System.out.println("請重新輸入一個整數end:");
end = sc.nextLong();
}
while (end<begin) {
System.out.println("請輸入大於第一次輸入的正整數!");
System.out.println("請重新輸入一個整數end:");
end = sc.nextLong();
}
sum = getSumBetween(begin,end);
System.out.printf("Sum between %d and %d:%d%n",begin,end,sum);
proct = getProctBetween(begin,end);
System.out.printf("Proct between %d and %d:%d%n",begin,end,proct);
sc.close();
}catch (Exception e) {
System.out.println("輸入的參數不是合法整數!");
return;
}
}
private static long getSumBetween(long x,long y){
long a=0;
for (long m = 0; m < y-x+1; m++) {
a = a+x+m;
}
return a;
}
private static long getProctBetween(long x,long y){
long b=1;
for (long n = 0; n < y-x+1; n++) {
b = b*(x+n);
}
return b;
}
}
5. java中,中文首字母搜索是怎麼實現的
樓上的 樓主是要求輸入字母求得相關的漢字字元串,而你音品碼查詢是從漢字求得首字母吧?
我做過一個公交查詢系統,其中有個功能就是通過字母顯示出相應的站點。
首先,你想通過『W』得到王力宏、王菲等你就必須先把這些名字存到資料庫中吧,然後你再在資料庫中給這些名字項添加一個首字母的欄位,當然你不用手動去輸入它們的首字母,寫個方法循環把它們的首字母輸出並存入資料庫中,方法可用樓上的音品碼查詢,我也寫了個類似的方法,如下:
public class StringUtil {
//private static Log logger = LogFactory.getLog(StringUtil.class);
// 國標碼和區位碼轉換常量
int GB_SP_DIFF = 160;
//存放國標一級漢字不同讀音的起始區位碼
int[] secPosValueList = {
1601, 1637, 1833, 2078, 2274, 2302, 2433, 2594, 2787,
3106, 3212, 3472, 3635, 3722, 3730, 3858, 4027, 4086,
4390, 4558, 4684, 4925, 5249, 5600};
//存放國標一級漢字不同讀音的起始區位碼對應讀音
char[] firstLetter = {
'a', 'b', 'c', 'd', 'e', 'f', 'g', 'h', 'j',
'k', 'l', 'm', 'n', 'o', 'p', 'q', 'r', 's',
't', 'w', 'x', 'y', 'z'};
char convert(String ch) {
byte[] bytes=new byte[2];
try {
bytes = ch.getBytes("GB2312");
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
char result = '-';
int secPosValue = 0;
int i;
for (i = 0; i < bytes.length; i++) {
bytes[i] -= GB_SP_DIFF;
}
secPosValue = bytes[0] * 100 + bytes[1];
for (i = 0; i < 23; i++) {
if (secPosValue >= secPosValueList[i] && secPosValue < secPosValueList[i + 1]) {
result = firstLetter[i];
break;
}
}
return result;
}
}
調用convert(String str)方法就是返回str字元串的首字的首字母。其它的應該沒什麼難的了,代碼看不懂給我發信息。
6. 我連的Mysql資料庫,JAVA中寫了如下sql語句: between and,傳佔位符對應的參數時只能傳int類型嗎
不僅僅是int型的,還可以傳Date,String和其它基本類型(如:float,double,char)等,但是自定義對象除外。建議最好和資料庫欄位類型對應,如資料庫定義的是varchar,那麼就傳入String類型。實踐是檢驗真理的唯一標准,寫段代碼試一下就一幕瞭然了,還能加深記憶,多動手總是有好處的。