bombme
|
分享:
▲
▼
这我之前写的,用来判断使用者输入的字,不能含有键盘上的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
|
分享:
▲
▼
试试看使用 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
|
分享:
▲
▼
以下是我改两位大大的程式码成为可以输入的型态~不知是否有误= =+ 两个人的一起偷~ 复制程式
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 |
|
|
|