#4189: (java) 為甚麼判斷成功後count沒有加1~


elsonhao87 (暨大)

學校 : 國立暨南國際大學
編號 : 10858
來源 : [175.139.164.78]
最後登入時間 :
2016-12-14 10:21:09
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [163.22.18.79] | 發表日期 : 2010-09-01 13:17

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<line; 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);  
        }
    }
}
 
高手們幫忙看一下~  謝謝
 
 
#4193: Re:(java) 為甚麼判斷成功後count沒有加1~


welkin001 (無盡的蒼穹(持續更新中~水題集中帖))

學校 : 國立臺中技術學院
編號 : 12344
來源 : [111.252.125.191]
最後登入時間 :
2012-10-27 14:59:49
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [111.252.123.196] | 發表日期 : 2010-09-02 17:18

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<line; 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

 
#4197: Re:(java) 為甚麼判斷成功後count沒有加1~


elsonhao87 (暨大)

學校 : 國立暨南國際大學
編號 : 10858
來源 : [175.139.164.78]
最後登入時間 :
2016-12-14 10:21:09
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [125.224.160.173] | 發表日期 : 2010-09-03 08:02

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~
我會努力研究的~  真的很感謝~ 
 
 
#4215: Re:(java) 為甚麼判斷成功後count沒有加1~


srwindy (迷糊小書僮)

學校 : 不指定學校
編號 : 12991
來源 : [221.169.144.178]
最後登入時間 :
2010-12-09 19:04:15
a011. 00494 - Kindergarten Counting Game -- UVa494 | From: [221.169.144.178] | 發表日期 : 2010-09-06 21:33

用Pattern,Matcher拆字串
用ArrayList判斷字數也可以

這樣不會受到開頭是不是英文的限制@@

 
ZeroJudge Forum