廣告廣告
  加入我的最愛 設為首頁 風格修改
首頁 首尾
 手機版   訂閱   地圖  簡體 
您是第 3321 個閱讀者
 
<<   1   2  下頁 >>(共 2 頁)
發表文章 發表投票 回覆文章
  可列印版   加為IE收藏   收藏主題   上一主題 | 下一主題   
ooxx123
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片
推文 x0
[Java] [問題]判定使用者輸入的字
最近寫程式的時後想要用到這種方法
可是不知道該怎麼寫
問到的範例是這樣
String st=a. ..

訪客只能看到部份內容,免費 加入會員 或由臉書 Google 可以看到全部內容



[ 此文章被ooxx123在2005-04-14 12:31重新編輯 ]


獻花 x0 回到頂端 [樓 主] From:台灣數位聯合 | Posted:2005-04-13 21:32 |
bombme 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x141
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

這我之前寫的,用來判斷使用者輸入的字,不能含有鍵盤上的symbol
其實API裡面有更好的方法可以用,只是我摸了很久還是不會用~_~"
不過這例子跟你問的是差不多的東西...希望你看的懂

這是我修改以前寫的東西PO上來的,有沒有錯誤我也不知道= =...
不過你可以試試,其他高手也可以幫忙指正唷~~ 表情 表情 表情

複製程式
/*使用者輸入的字*/
         String st=a.readLine();
         boolean st=true; 
/*鍵盤上的symbol我一個一個列出來,which is 比較笨的方法= =",等等用來做比較要用的*/
         char[] data = {'~','`','!','@','#','$','%','^','&','*','(',')','-','_','+','=',
            '{','}','[',']','|','\\',':','','"','\'',' ','?','<','>',',','.','/'};
/*
這邊我用double for loop 去檢查 使用者輸入的字串,這邊我不太懂怎麼去解釋
第一個for loop不會解釋= =...假設使用者輸入 abcde 這個loop就會跑五次就對啦
第二個for loop是用來比對上面的symbol,他會一個一個去比對..
*/
         for(int ln=0; ln<st.length(); ln++){      
            for(int ck=0; ck<33; ck++){
               char c = data[ck];
               char l=st.charAt(ln);
               if(c==l){
                  st=false;
               } 
            }   
         }

/*
假如使用者輸入的字裡面沒有那些symbol,列出"input correct"
不然就列出ERROR input, only A~Z, a~z or 0~9 char accepted
*/
            if(st){
               System.out.println("Input correct");   
            }
            else{
               System.out.println("ERROR input, only A~Z, a~z or 0~9 char accepted.");
            }


[ 此文章被bombme在2005-04-14 10:51重新編輯 ]


獻花 x0 回到頂端 [1 樓] From:澳大利亞 | Posted:2005-04-14 01:26 |
PeterPan 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x1 鮮花 x99
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

試試看使用 String 的 indexOf() 這個 method,它能搜尋 String 物件中,字元或字串的位置,會回傳一個 int 數值,與陣列的索引一樣,傳回的範圍為 0~?,沒找到的話會傳回 -1

indexOf()是一個 overloading 的 method:
public int indexOf(char ch) 尋找字元 ch 的所在位置
public int indexOf(char ch,int fromIndex) 從 fromIndex 開始尋找字元 ch 的位置
public int indexOf(String str) 尋找字串 str 的所在位置
public int indexOf(String str,int fromIndex) 從 fromIndex 開始尋找字串 str 的位置
String class 的完整官方說明

範例一:驗證字元﹝盜用 bombme 提供的原始碼 表情, plz forgive me﹞複製程式
public class Test{

    public static void main(String[] args){
        String st="tests";

        boolean test=true;

        char[] data = {'~','`','!','@','#','$','%','^','&','*','(',')','-','_','+','=',
                '{','}','[',']','|','\\',':','','"','\'',' ','?','<','>',',','.','/'};


        for(int ck=0;ck<33;ck++){
            char c = data[ck];
            if(st.indexOf(c) > -1){
                test=false;
            }
        }

        if(test){
            System.out.println("Input correct");
        }
        else{
            System.out.println("ERROR input, only A~Z, a~z or 0~9 char accepted.");
        }
    }

}

範例二:驗證字串複製程式
public class Test{

    public static void main(String[] args){
        String st="ABCDEFG";

        boolean test=false;

        if(st.indexOf("CDE") > -1){
            test=true;
        }

        if(test){
            System.out.println("Input correct, \"CDE\" in the String");
        }
        else{
            System.out.println("ERROR input, \"CDE\" don't in the String");
        }
    }

}


神:在多項技術領域,具有不可取代性且擁有高度權威
魔:在某項技術領域,具有不可取代性且擁有高度權威
妖:有高度實戰經驗,且在專業領域上具有domain-Knowledge
俠:在技術層面上有過人專業能力
人:可以獨立運作、設計暨開發系統
蟲:coder only (my level)
獻花 x0 回到頂端 [2 樓] From:台灣數位聯合 | Posted:2005-04-14 11:22 |
ooxx123
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

以下是我改兩位大大的程式碼成為可以輸入的型態~不知是否有誤= =+

兩個人的一起偷~ 表情
複製程式
import java.io.*;
public class Test
{
    public static void main(String[] args)throws IOException
    {
        BufferedReader a=new BufferedReader(new InputStreamReader(System.in));

        System.out.println("請輸入要判定的字元 :");

        String st=a.readLine();

        boolean test=true;

        char[] data = {'~','`','!','@','#','$','%','^','&','*','(',')','-','_','+','=',
                '{','}','[',']','|','\\',':','','"','\'',' ','?','<','>',',','.','/'};


        for(int ck=0;ck<data.length;ck++)
        {
            char c = data[ck];
            if(st.indexOf(c) > -1)
            {
                test=false;
            }
        }

        if(test)
        {
            System.out.println("Input correct");
        }
        else
        {
            System.out.println("ERROR input, only A~Z, a~z or 0~9 char accepted.");
        }
    }

}

執行之後發現,使用者不只可以輸入字元,也可以輸入字串,而在字串之中,只要出現符號(data中的),程式就會判定使用者所輸入錯誤,不知是否是因為該程式的功能,是在判定使用者全部的輸入有不屬於"文字"的部份??表情


[ 此文章被ooxx123在2005-04-14 12:51重新編輯 ]


獻花 x0 回到頂端 [3 樓] From:台灣數位聯合 | Posted:2005-04-14 12:42 |
PeterPan 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x1 鮮花 x99
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

看不太懂你想要的功能,能否從頭說明?


神:在多項技術領域,具有不可取代性且擁有高度權威
魔:在某項技術領域,具有不可取代性且擁有高度權威
妖:有高度實戰經驗,且在專業領域上具有domain-Knowledge
俠:在技術層面上有過人專業能力
人:可以獨立運作、設計暨開發系統
蟲:coder only (my level)
獻花 x0 回到頂端 [4 樓] From:台灣數位聯合 | Posted:2005-04-14 12:52 |
ooxx123
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

其實原本會上來問此問題的原因只是要做一個(Y/N)的選項,
希望程式可以依照使用者所輸入的文字而做出不同的反應。

作文能力欠佳請見諒..."OTZ 表情


獻花 x0 回到頂端 [5 樓] From:台灣數位聯合 | Posted:2005-04-14 13:04 |
PeterPan 手機
個人文章 個人相簿 個人日記 個人地圖
特殊貢獻獎 社區建設獎
知名人士
級別: 知名人士 該用戶目前不上站
推文 x1 鮮花 x99
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用ooxx123於2005-04-14 13:04發表的 :
其實原本會上來問此問題的原因只是要做一個(Y/N)的選項,
希望程式可以依照使用者所輸入的文字而做出不同的反應。

作文能力欠佳請見諒..."OTZ 表情

原來如此,再寫個判斷式就可以了 表情

regards


神:在多項技術領域,具有不可取代性且擁有高度權威
魔:在某項技術領域,具有不可取代性且擁有高度權威
妖:有高度實戰經驗,且在專業領域上具有domain-Knowledge
俠:在技術層面上有過人專業能力
人:可以獨立運作、設計暨開發系統
蟲:coder only (my level)
獻花 x0 回到頂端 [6 樓] From:台灣數位聯合 | Posted:2005-04-14 13:20 |
唐老鴨
個人頭像
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x1 鮮花 x230
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

建議一樓的大大....Character class裡面有很多方法可以判斷你需入的字元....像是isDigit或是isLetter等等....可以不用寫這麼麻煩的 表情


沒東西可以抓
獻花 x0 回到頂端 [7 樓] From:美國 | Posted:2005-04-14 13:22 |
ooxx123
個人文章 個人相簿 個人日記 個人地圖
路人甲
級別: 路人甲 該用戶目前不上站
推文 x0 鮮花 x4
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

我...我還是初學者...那個沒聽過的說= =+
所以...還在慢慢的學ING 表情


獻花 x0 回到頂端 [8 樓] From:台灣數位聯合 | Posted:2005-04-14 13:35 |
bombme 手機
數位造型
個人文章 個人相簿 個人日記 個人地圖
初露鋒芒
級別: 初露鋒芒 該用戶目前不上站
推文 x0 鮮花 x141
分享: 轉寄此文章 Facebook Plurk Twitter 複製連結到剪貼簿 轉換為繁體 轉換為簡體 載入圖片

下面是引用ooxx123於2005-04-14 13:04發表的 :
其實原本會上來問此問題的原因只是要做一個(Y/N)的選項,
希望程式可以依照使用者所輸入的文字而做出不同的反應。

作文能力欠佳請見諒..."OTZ 表情

如果你只是要做(Y/N)的選項的話...那就更簡單啦= =
用if來判斷...Y跟N以外的輸入...printout 亂來XD
下面可以參考

複製程式
import java.io.*;
public class Test
{
    public static void main(String[] args)throws IOException
    {
        BufferedReader a=new BufferedReader(new InputStreamReader(System.in));
        System.out.print("請輸入要判定的字元 (Y/N): ");

        String st=a.readLine(); 

        if ((st.equals ("y")) || (st.equals ("Y"))){
                System.out.println("使用者輸入Y");
        }
        else if ((st.equals ("n")) || (st.equals ("N"))){
                System.out.println("使用者輸入N");
        }
        else {
                System.out.println("亂來XD");
        }
    }
}



下面是引用唐老鴨於2005-04-14 13:22發表的 :
建議一樓的大大....Character class裡面有很多方法可以判斷你需入的字元....像是isDigit或是isLetter等等....可以不用寫這麼麻煩的 表情

噗噗...那個例子是比較笨的寫法拉= ="
當初我也有注意到api裡面有 isDigit 之類的...
由於報告一堆,沒時間研究...
所以能達到教授要求的功能不要被扣分就好啦XD


[ 此文章被bombme在2005-04-14 14:34重新編輯 ]


獻花 x0 回到頂端 [9 樓] From:澳大利亞 | Posted:2005-04-14 14:20 |

<<   1   2  下頁 >>(共 2 頁)
首頁  發表文章 發表投票 回覆文章
Powered by PHPWind v1.3.6
Copyright © 2003-04 PHPWind
Processed in 0.026590 second(s),query:16 Gzip disabled
本站由 瀛睿律師事務所 擔任常年法律顧問 | 免責聲明 | 本網站已依台灣網站內容分級規定處理 | 連絡我們 | 訪客留言