Discussion:
[問題] about StringTokenizer
(时间太久无法回复)
我不是壞人好嗎??
2006-10-17 04:30:40 UTC
Permalink
import java.util.*;
import java.io.*;

class test
{
BufferedReader br=nuew BufferedReader(new InputStreamReader(system.in));
str=br.readLine();
StringTokenizer tokens = new StringTokenizer(str);
String temp;
while(tokens.hasMoreTokens()){
temp=tokens.nextToken():
if(temp=="ins")
System.out.println("Find ins in the input");
else
System.out.print("notFound");
}
}
我想要從輸入的資料中找找看有沒有 ins這個token 但是雖然有輸入ins這樣的token 程式
跑出來的結果 卻還是notFound 已經卡了三天了 希望哪為大大可以幫我解惑 感恩

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 202.178.206.204
t***@kkcity.com.tw
2006-10-17 14:18:13 UTC
Permalink
Post by 我不是壞人好嗎??
import java.util.*;
import java.io.*;
class test
{
BufferedReader br=nuew BufferedReader(new InputStreamReader(system.in));
str=br.readLine();
StringTokenizer tokens = new StringTokenizer(str);
String temp;
while(tokens.hasMoreTokens()){
if(temp=="ins")
改成if(temp.equals("ins"))或是
改成if(temp.equalsIgnoreCase("ins"))
試試吧!
Post by 我不是壞人好嗎??
System.out.println("Find ins in the input");
else
System.out.print("notFound");
}
}
我想要從輸入的資料中找找看有沒有 ins這個token 但是雖然有輸入ins這樣的token 程式
跑出來的結果 卻還是notFound 已經卡了三天了 希望哪為大大可以幫我解惑 感恩
--
┌─────◆KKCITY◆─────┐  KKBOX◤歌名╱歌手╱歌詞╱專輯◢搜尋 
│ bbs.kkcity.com.tw │   ★ http://www.kkbox.com.tw ★
└──《From:61.62.107.41 》──┘ 超過80家唱片公司合法授權 音樂盡情下載
--
a***@kkcity.com.tw
2006-10-18 07:44:19 UTC
Permalink
※ 引述《tachibana1 ( )》之銘言:
Post by t***@kkcity.com.tw
改成if(temp.equals("ins"))或是
改成if(temp.equalsIgnoreCase("ins"))
試試吧!
更好一點, 習慣寫成 "ins".equals(temp)

Alien
--
┌─────◆KKCITY◆─────┐ KK免/費/撥/接 ◤
│ bbs.kkcity.com.tw │▏電話(1):449◤1999 電話(2):4058-6000
└──《From:202.72.0.45 》──┘▏帳號:kkcity 密碼:kkcity
--
 
2006-10-18 02:17:26 UTC
Permalink
※ 引述《***@kkcity.com.tw ( )》之銘言:
: ※ 引述《tachibana1 ( )》之銘言:
: > 改成if(temp.equals("ins"))或是
: > 改成if(temp.equalsIgnoreCase("ins"))
: > 試試吧!
: 更好一點, 習慣寫成 "ins".equals(temp)

請問這樣的好處是什麼呢?
是 coding style 還是 efficiency 的考量呢?

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 140.112.31.163
※ 編輯: zhouer 來自: 140.112.31.163 (10/18 18:17)
c'est la vie
2006-10-18 02:15:35 UTC
Permalink
為什麼寫 "ins".equals(temp)
而不用 temp.equals("ins")
因為變數temp有可能是null而造成錯誤
雖然目前的例子不會發生
但難保你之後的修改不會產生這種情形
及早養成好習慣吧

BTW, 做以下的修改會比較好
while(tokens.hasMoreTokens()){
final String temp = tokens.nextToken():
不會再修改的變數就設為final吧
變數的有效範圍愈小愈好 ---> 愈安全


※ 引述《zhouer ( )》之銘言:
: ※ 引述《***@kkcity.com.tw ( )》之銘言:
: : 更好一點, 習慣寫成 "ins".equals(temp)
: 請問這樣的好處是什麼呢?
: 是 coding style 還是 effetioncy 的考量呢?

--
北宋 柳永 蝶戀花
佇倚危樓風細細,望極春愁,黯黯生天際。草色煙光殘照裏,無言誰會憑闌意?
擬把疏狂圖一醉,對酒當歌,強樂還無味。衣帶漸寬終不悔,為伊消得人憔悴。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 125.229.167.128
※ 編輯: webberhan 來自: 125.229.167.128 (10/18 18:15)
继续阅读narkive:
Loading...