import java.util.*;
public class A0918 {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);//讀取使用者的輸入
System.out.print("請輸入三個字串,每個字串中間以空白隔開: ");
String[] ary1 = scan.nextLine().split(" ");//以字串間的空白做分隔,把讀入的字串存入字串陣列.
System.out.print("請再輸入一次: ");
String[] ary2 = scan.nextLine().split(" ");
boolean isSame = true;//預設兩次輸入的都是一樣的字
for (int i = 0; i < 3 && i < ary1.length && i < ary2.length; i++) {//把兩個陣列中的,三個字拿來比對.
if (!ary1[i].equalsIgnoreCase(ary2[i])) {//假如不一樣.
isSame = false;//設定不一樣.
break;//跳離迴圈.
}
}
if (isSame)//假如一樣.
System.out.println("兩次輸入相同");
else//假如不一樣.
System.out.println("兩次輸入不相同");
}
}
網頁
BloggerAds 廣告
標籤
- Java (96)
- Android (27)
- 演算法 (21)
- c++ (19)
- JavaScript (7)
- OpenMp (6)
- Design Pattern (4)
- 日文歌曲 (4)
- 資料結構 (4)
- Foundation Knowledge Of Programming (3)
- QUT (2)
- CodingHomeWork (1)
- Database (1)
- 英文歌詞 (1)
搜尋此網誌
2013年6月23日 星期日
程式註解 for 甜甜圈.
學c++ , Java 未來發展
C/ C++ , 主要用在寫韌體或者是軟體和硬體做溝通(driver)的程式設計.
許多底層的功能都是用C/C++寫的 , Windows/Linux , 作業系統底層也是用這兩個語言去寫.
至於Java呢? 比較偏重於網路和多媒體的運用 , 因為Java有很多3rd party的套件,
你不必重新寫一個功能 , 只要在合法的範圍內, 使用這些第三方套件, 再搭配上
自己寫的函式, 就可以寫出一個應用程式.
這兩個語言各擅所長 , 只要你夠厲害 , 這兩個語言都很好.
許多底層的功能都是用C/C++寫的 , Windows/Linux , 作業系統底層也是用這兩個語言去寫.
至於Java呢? 比較偏重於網路和多媒體的運用 , 因為Java有很多3rd party的套件,
你不必重新寫一個功能 , 只要在合法的範圍內, 使用這些第三方套件, 再搭配上
自己寫的函式, 就可以寫出一個應用程式.
這兩個語言各擅所長 , 只要你夠厲害 , 這兩個語言都很好.
2013年6月19日 星期三
猜數字範圍註解.
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.JButton;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JTextField;
class Frame extends JFrame implements ActionListener {
JTextField setnum = new JTextField();//範圍欄位
JTextField txtinput = new JTextField();//使用者輸入欄位
JTextField txtArea = new JTextField();//提示訊息欄位.
JLabel j = new JLabel("請輸入範圍0~?");
JLabel j2 = new JLabel("請輸入任意數:");
JButton OK = new JButton("go");//ok按鈕
int set, c, num;
int b = 0;
boolean setting = true;//已設定好範圍
boolean right = false;//答案錯誤
Frame() {
j.setBounds(20, 10, 100, 20);//設定標籤尺寸和範圍.
add(j);//把標籤加入frame
setnum.setBounds(110, 10, 80, 20);
setnum.addActionListener(this);//把範圍欄位加入行為監聽器
add(setnum);//把範圍欄位加入frame
j2.setBounds(20, 50, 100, 20);
add(j2);
txtinput.setBounds(110, 50, 80, 20);
txtinput.addActionListener(this);
add(txtinput);
txtinput.setEditable(false);
txtArea.setBounds(20, 80, 170, 20);
txtArea.setEditable(false);
add(txtArea);
OK.addActionListener(this);
OK.setBounds(120, 110, 70, 20);
add(OK);
setTitle("終極密碼");//設定frame名稱.
setLayout(null);
setBounds(200, 200, 220, 180);
setVisible(true);
setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
}
public void actionPerformed(ActionEvent e) {
if (e.getSource() == OK || e.getSource() == txtinput//當按下ok 或者 使用者觸發了 範圍設定欄位, 或是輸入猜測數字,則執行下列程式.
|| e.getSource() == setnum) {
if (setting) {//假如已設定範圍.
set = Integer.parseInt(setnum.getText());//讀入設定的數字.
c = set;//把數字設給c變數,
if (set <= 1) {//假如設定的數字小於1
txtArea.setText("請輸入大於1的任意數字");
} else {
num = (int) (Math.random() * c - 1) + 1;//亂數產生數字.
setting = false;//因為已經設定了正確的範圍, 所以把範圍設定旗標, 設為false,
txtArea.setText("請猜0~" + set + "的任意數字");
txtinput.setEditable(true);//把欄位設為不可編輯.
setnum.setEditable(false);
}
} else {
int g = Integer.parseInt(txtinput.getText());//把使用者讀入的字串轉為數字存到變數g.
if (g >= c || g <= b) {//假如數字小於0或是超出設定的範圍.
txtArea.setText("超出範圍" + b + "~" + c + "請從新輸入");
} else {
if (g == num) {
txtArea.setText("恭喜答對拉!");
right = true;
OK.setEnabled(false);
} else if (g > num) {
c = g;
txtArea.setText("錯瞜~小一些" + b + "~" + c);
txtinput.setText("");
} else if (g < num) {
b = g;
txtArea.setText("錯瞜~大一些" + b + "~" + c);
txtinput.setText("");
}
}
}
}
}
}
public class Davinci_Code {
public static void main(String[] args) {
new Frame();
}
}
2013年6月18日 星期二
數位時鐘
import java.awt.FlowLayout;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.text.SimpleDateFormat;
import java.util.Date;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
import javax.swing.Timer;
public class DigitalClock extends JLabel {
private String pattern;
private Timer timer;
private int delay;
public DigitalClock(String pattern) {
this.pattern = pattern;
this.delay = 1000;
createTimer();
timer.start();
}
public DigitalClock(String pattern, int delay) {
this.pattern = pattern;
this.delay = delay;
createTimer();
timer.start();
}
public DigitalClock() {
pattern = "hh:mm:ss a";
this.delay = 1000;
createTimer();
timer.start();
}
private void createTimer() {
timer = new Timer(delay, new ActionListener() {
public void actionPerformed(ActionEvent arg0) {
setText(new SimpleDateFormat(pattern).format(new Date()));
}
});
}
public static void main(String[] args) {
JFrame frame = new JFrame();
frame.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frame.setBounds(100, 100, 229, 102);
JPanel contentPane = new JPanel();
frame.setContentPane(contentPane);
contentPane.setLayout(new FlowLayout(FlowLayout.CENTER, 10, 10));
DigitalClock digitalClock = new DigitalClock();
contentPane.add(digitalClock);
frame.setVisible(true);
}
}
參考來源 : http://tw.knowledge.yahoo.com/question/question?qid=1013061801638 , strawman
2013年6月16日 星期日
求 JAVA 程式碼註解
import java.util.Scanner;
public class GuessNumber03 {
public static void main(String[] args) {
int a, b, c, d;// 四位數字a , b , c , d
a = (int) (Math.random() * (9)) + 1;// 1~9 , 首位數不為零.
b = (int) (Math.random() * (10));// 0~9
c = (int) (Math.random() * (10));// 0~9
d = (int) (Math.random() * (10));// 0~9
String str = String.valueOf(a) + String.valueOf(b) + String.valueOf(c)
+ String.valueOf(d);// 把電腦產生的隨機數字 , 組合成字串.
String ans = "";// 儲存使用者猜的答案
Scanner sc = new Scanner(System.in);// 從命令列讀取輸入的值.
boolean check = false;// 預設為沒有猜到答案.
System.out.println("請輸入四個數字,數字對且位置正確得A,位置錯誤得B");
int count = 0;// 紀錄猜的次數
while (++count <= 10) { // 限制猜的次數到10次沒答對自動結束
while (!check) {// 如果沒答對 , 則繼續猜
ans = sc.next();// 讀取使用者輸入的數字.
String[] ansTmp = ans.split("");// 把答案abcd,分開存入暫存的字串陣列.
String[] inTmp = str.split("");// 把電腦的答案,分開存入暫存的字串陣列.
int A = 0;
int B = 0;
for (int i = 0; i < ansTmp.length; i++) {// 逐各取出使用者的答案.
for (int j = 0; j < ansTmp.length; j++) {// 逐各取出使用者的答案 ,
// 拿來和電腦的答案比對.
if (inTmp[j].equals(ansTmp[i]) && i == j)// 假如位置一樣且數字一樣
// , a++
A++;
else if (inTmp[j].equals(ansTmp[i]) && i != j)// 有數字但是位置不一樣.b++
B++;
}
}
System.out.println("判斷結果" + A + "A" + B + "B");
if (A == 4)// 假如4A,
check = true;// 設定猜到答案
if (A == 4 & B == 0)// 假如4A且B等於零 , 則印出,恭喜你,答對ㄌ
System.out.println("恭喜你,答對ㄌ");
break;
}
}
System.out.println("遊戲結束");
}
}
Java多重按鍵偵測.
import java.awt.Dimension;
import java.awt.EventQueue;
import java.awt.event.KeyAdapter;
import java.awt.event.KeyEvent;
import javax.swing.JFrame;
import javax.swing.JLabel;
import javax.swing.JPanel;
public class MKPD extends JFrame
{
public MKPD()
{
super("MKPD");
setDefaultCloseOperation(EXIT_ON_CLOSE);
setContentPane(new KeyPanel());
pack();
setVisible(true);
}
public static void main(String[] args)
{
Runnable r = new Runnable()
{
public void run()
{
new MKPD();
}
};
EventQueue.invokeLater(r);
}
}
class KeyPanel extends JPanel
{
private enum GameState { MOVED, JUMPED, MOVED_THEN_JUMPED,
JUMPED_THEN_MOVED };
private GameState gs = null;
private boolean rightPressed = false;
private boolean upPressed = false;
private JLabel lblStatus = null;
KeyPanel()
{
KeyAdapter ka = new KeyAdapter()
{
public void keyPressed(KeyEvent ke)
{
handleKeyPress(ke);
}
public void keyReleased(KeyEvent ke)
{
handleKeyRelease(ke);
}
};
addKeyListener(ka);
lblStatus = new JLabel("", JLabel.CENTER);
lblStatus.setPreferredSize(new Dimension(200, 50));
add(lblStatus);
setFocusable(true);
requestFocus();
}
private void handleKeyPress(KeyEvent ke)
{
int keyCode = ke.getKeyCode();
if (keyCode == KeyEvent.VK_RIGHT)
rightPressed = true;
else
if (keyCode == KeyEvent.VK_UP)
upPressed = true;
updateState();
updateLabel();
}
private void handleKeyRelease(KeyEvent ke)
{
int keyCode = ke.getKeyCode();
if (keyCode == KeyEvent.VK_RIGHT)
rightPressed = false;
else
if (keyCode == KeyEvent.VK_UP)
upPressed = false;
updateState();
updateLabel();
}
private void updateLabel()
{
if (gs == null)
{
lblStatus.setText("");
return;
}
switch (gs)
{
case MOVED_THEN_JUMPED:
lblStatus.setText("Moved and then jumped");
break;
case JUMPED_THEN_MOVED:
lblStatus.setText("Jumped and then moved");
break;
case MOVED:
lblStatus.setText("Moved");
break;
case JUMPED:
lblStatus.setText("Jumped");
}
}
private void updateState()
{
if (rightPressed && upPressed)
{
if (gs == GameState.MOVED)
gs = GameState.MOVED_THEN_JUMPED;
else
if (gs == GameState.JUMPED)
gs = GameState.JUMPED_THEN_MOVED;
}
else
if (rightPressed)
gs = GameState.MOVED;
else
if (upPressed)
gs = GameState.JUMPED;
else
gs = null;
}
}
2013年6月15日 星期六
猜拳 麻煩幫我每句做編譯 JAVA
import java.util.*;
public class Sample {
public static void main(String[] args) {
String[] gg = { "剪刀", "石頭", "布" }; // 猜拳遊戲的三種拳.
Scanner scan = new Scanner(System.in);// 讀取命令列輸入的選項
Random rand = new Random(); // 隨機數字產生器
int p = 0, c = 0; // p:人贏的次數 , c:電腦贏的次數
while (p < 2 && c < 2) {//只要電腦或是人, 其中沒有任何一方贏兩次的話, 繼續執行猜拳的迴圈.
System.out.println("1.剪刀 2.石頭 3.布"); //印出遊戲的玩法.
int player = scan.nextInt() - 1;//使用者讀入的數字減-1
int comp = rand.nextInt(3);//電腦傳出0-2之中的其中一個數字.
System.out.println("你出" + gg[player]);//顯示人出的拳
System.out.println("電腦出" + gg[comp]);//顯示電腦出的拳
switch (player - comp) {//拿人的數字減去電腦的數字去比較,
case -2://人出剪刀 贏 電腦布 ,
p++;
break;
case -1://人出剪刀輸電腦石頭 , 人出石頭輸電腦布.
c++;
break;
case 1://人出石頭贏電腦剪刀, 人出布贏電腦石頭.
p++;
break;
case 2://人出布輸電腦剪刀.
c++;
break;
}
}
if (p == 2)//假如人贏兩次,印出你贏了
System.out.println("你贏了");
else //若電腦先贏兩次的話 , 因為迴圈結束,所以你輸了.
System.out.println("你輸了");
}
}
2013年6月14日 星期五
猜數字遊戲
import java.io.*;
public class GuessNumber {
private int[] answerSet = new int[10*9*8*7];
public GuessNumber() {
int index=0;
for (int n1=0; n1<10; n1++) {
for (int n2=0; n2<10; n2++) {
if ( n2 == n1) continue;
for (int n3=0; n3<10; n3++) {
if (n3 == n2 || n3 == n1 ) continue;
for (int n4=0; n4<10; n4++) {
if ( n4==n1 || n4==n2 || n4==n3) continue;
answerSet[index++] = n1*1000+n2*100+n3*10+n4;
}
}
}
}
guess();
}
private void input(int number) {
System.out.print( transform(number) + ", ?A?B = ");
int a=0,b=0;
try {
BufferedReader br = new BufferedReader (new InputStreamReader (System.in));
String str = br.readLine();
while ( str.length() != 4 ) {
System.out.println("輸入錯誤, 格式為 ?A?B ");
System.out.print( transform(number) + ", ?A?B = ");
str = br.readLine();
}
a = str.charAt(0) - '0';
b = str.charAt(2) - '0';
}
catch (IOException e) {
System.out.println("輸入時發生不可預期的錯誤...");
System.exit(0);
}
if (a == 4) {
System.out.println("The answer is " + transform(number));
System.exit(0);
}
reduce(number,a,b);
}
private void guess() {
for (int i=0; i< answerSet.length; i++) {
if ( answerSet[i] == -1 ) continue;
input ( answerSet[i]);
}
System.out.println("你騙人!! 根本沒這數字, ***!");
}
private void reduce(int number, int a, int b) {
for (int i=0; i< answerSet.length; i++) {
if ( answerSet[i] == -1) continue;
if (getA(number,answerSet[i]) != a || getB(number,answerSet[i]) != b )
answerSet[i] = -1;
}
for (int i=0; i < answerSet.length; i++) {
if ( answerSet[i] == -1) continue;
System.out.print( transform(answerSet[i]) + " ");
}
System.out.println();
}
private int getA(int n1, int n2) {
int a=0;
String str1 = transform(n1);
String str2 = transform(n2);
for (int i=0; i<4; i++) {
if (str1.charAt(i) == str2.charAt(i) )
a++;
}
return a;
} private String transform (int n) {
if ( n < 1000 )
return "0" + n;
else
return ""+n;
}
private int getB(int n1, int n2) {
int b = 0;
String str1 = transform(n1);
String str2 = transform(n2);
for (int i=0; i < 4; i++) {
for (int j=0; j<4 ; j++) {
if ( i == j) continue;
if ( str1.charAt(i) == str2.charAt(j) )
b++;
}
}
return b;
}
public static void main (String [] args) {
GuessNumber app = new GuessNumber();
}
}
參考來源
2011年8月6日 星期六
JSP pagecontext
page scope:只可在同一個page頁面內存取,一旦page把資料處理完return回browser之後,資料就不在可用.
request scope:處理同一個request的各個頁面都可以存取,一旦container(Tomcat or other application server)處理完這筆請求,資料才會被release
session scope:同一個session的頁面都可以存取,session的範圍是從1.user打開browser到關掉browser為止, 或2.user連到別的網站, 或3.系統設計者在user log out時自動銷毀.
application:同一個應用程式內的jsp pages都看的到,使用上要小心, 別任意改動application scope的變數值,因為很可能別的jsp page需要用到,一般來說這個範圍適用於read only的變數
request scope:處理同一個request的各個頁面都可以存取,一旦container(Tomcat or other application server)處理完這筆請求,資料才會被release
session scope:同一個session的頁面都可以存取,session的範圍是從1.user打開browser到關掉browser為止, 或2.user連到別的網站, 或3.系統設計者在user log out時自動銷毀.
application:同一個應用程式內的jsp pages都看的到,使用上要小心, 別任意改動application scope的變數值,因為很可能別的jsp page需要用到,一般來說這個範圍適用於read only的變數
jsp servletcontext application
application是一個可以存取servlet context的隱含物件,而jsp本身便是一個servlet,,因此 getServletContext().getAttribute("name") 和application.getAttribute("name")意思一樣,不過要避免在jsp使用此作法,最好是在後台的servlet便用 request設好值,jsp只要負責讀取
Java private final int
private int---->沒有final,所以可以指派int的值.
兩者宣告為private之後,只可在宣告的類別內使用.
加上final的用法,通常為PI等常數值的時候會使用.
訂閱:
文章 (Atom)
我的網誌清單
標籤
日文歌曲
(4)
股市
(7)
股票
(9)
英文歌詞
(1)
時事
(1)
硬體(hardware)
(1)
資料結構
(4)
演算法
(21)
數學(Math)
(4)
ACM
(3)
ajax
(7)
algorithms
(1)
Android
(27)
Blog Notes(部落格記事)
(6)
C
(9)
c++
(19)
CodingHomeWork
(1)
Database
(1)
Design Pattern
(4)
Foundation Knowledge Of Programming
(3)
GWT
(1)
How
(2)
J2EE
(1)
Java
(96)
Java語言
(4)
JavaScript
(7)
Leetcode
(4)
LOL
(1)
OpenMp
(6)
QUT
(2)
Uva
(2)
Yahoo知識問答
(11)