import java.util.Scanner;
public class Test2
{
public static void main(String [] argv)
{
Scanner input = new Scanner(System.in);
while(input.hasNext())
{
String data = input.nextLine();
int line = data.length();
char [] data1 = data.toCharArray();
int count = 0;
for(int i=0; i
{
int c = (int)data1[i];
if(c>=65 && c<=90||c>=97&&c<=122)
{
if((c<=64)||(c>=91&&c<=96)||(c>=123))
{
count++; (就是這裡~ 為甚麼判斷成功後不能加1)
}
}
}
System.out.println(count);
}
}
}
高手們幫忙看一下~ 謝謝
if(c>=65 && c<=90||c>=97&&c<=122)
{
if((c<=64)||(c>=91&&c<=96)||(c>=123))
{
count++; (就是這裡~ 為甚麼判斷成功後不能加1)
}
}
if c = 英文字元{ if c != 英文字元}
你不覺得這樣的表達式很矛盾嗎?
這樣根本恆不成立 !!
以下是我幫你修改過後(參考下):
boolean flag = true;//假設初次輸入為連續英文字元成立
for(int i=0; i
{
int c = (int)data1[i];
if((c>=65 && c<=90||c>=97&&c<=122))
{
if(flag)
count++;
flag = false; //因之後連續緣故所以不成立
}else{
flag = true;//當遇到非英文字元時,為一個英文單字成立!!
}
}
不過我的寫法有個bug就是當我第一次輸入不是英文字元時...
整個程式就會出錯...(不過對付OJ測資passXD)
可以想想如何改進QQ
以上~(測試好久才成功....Q_Q
非常謝謝你~
麻煩你來幫我看code~
我會努力研究的~ 真的很感謝~