Discussion:
[問題] parseInt 用法疑惑
(时间太久无法回复)
臭臭ㄟ仆仆
2007-06-23 19:36:42 UTC
Permalink
int s3=Integer.parseInt(String s2);
^^^^^^^

小弟認為是畫了斜線那邊出的問題,
因為String s2 本身是個宣告式,就像最前面的
int s3 一樣。

建議寫法是:


String s2 = "123" // some string that contains an integer
int s3 = Integer.parseInt(s2);


===========================
要記得的是,以後當你需要餵參數給任何函數時,所有的參數的
型態必須先被宣告。

如果說的不是很清楚,還請版上各位大大多多指教。



※ 引述《forris (喬巴)》之銘言:
: 我是要把一個整數字串轉成整數形別,用 parseInt 是沒錯的,所以我這樣寫:
: int s3=Integer.parseInt(String s2);
: 可是 complier 一直說這一行
: ')' expected
: not a statement
: ';' expected
: 這要怎麼解決呢?

--

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 75.51.65.77
妳哪位ㄚ
2007-06-24 01:55:38 UTC
Permalink
※ 引述《dumbjames (臭臭ㄟ仆仆)》之銘言:
: ===========================
: 要記得的是,以後當你需要餵參數給任何函數時,所有的參數的
: 型態必須先被宣告。
: 如果說的不是很清楚,還請版上各位大大多多指教。
: ※ 引述《forris (喬巴)》之銘言:
: : 我是要把一個整數字串轉成整數形別,用 parseInt 是沒錯的,所以我這樣寫:
: : int s3=Integer.parseInt(String s2);
: : 可是 complier 一直說這一行
: : ')' expected
: : not a statement
: : ';' expected
: : 這要怎麼解決呢?

編譯出現這種問題

應該是沒有宣告 s2 是什麼

可以像 dumbjames 說的

String s2 = "123";
int s3 = Integer.parseInt(s2);

或者是不要用變數

int s3 = Integer.parseInt("123");//直接放字串

當然妳想

Object s3 = new String("123");//型態為 Object 的 String 物件
int s3 = Integer.parseInt((String) s3);// type casting

也是可以啦...


--

那我走囉。

嗯,掰掰。

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 210.209.196.59
※ 編輯: janyfor 來自: 210.209.196.59 (06/24 09:55)
喬巴
2007-06-24 03:51:51 UTC
Permalink
其實原來的題目是:

用類似 C 裡的 inverse (x) 函式,撰寫一程式解決下列問題:
所有的四位數整數中存在有些四位數整數乘以一個個位數整數之後,
會變成該四位數相反順序的數字。
例如:2178 * 4 = 8712
請撰寫一程式找出所有符合上述條件的四位數及所對應的個位數,並於螢幕上印出。

我是用 StringBuffer.reverse() , 但是要轉回數值時卻出錯,
這裡又無法寫出程式碼,只能把錯誤訊息問問大家有無解決之道

※ 引述《janyfor (妳哪位ㄚ)》之銘言:
: ※ 引述《dumbjames (臭臭ㄟ仆仆)》之銘言:
: : ===========================
: : 要記得的是,以後當你需要餵參數給任何函數時,所有的參數的
: : 型態必須先被宣告。
: : 如果說的不是很清楚,還請版上各位大大多多指教。
: 編譯出現這種問題
: 應該是沒有宣告 s2 是什麼
: 可以像 dumbjames 說的
: String s2 = "123";
: int s3 = Integer.parseInt(s2);
: 或者是不要用變數
: int s3 = Integer.parseInt("123");//直接放字串
: 當然妳想
: Object s3 = new String("123");//型態為 Object 的 String 物件
: int s3 = Integer.parseInt((String) s3);// type casting
: 也是可以啦...

--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 59.116.197.109
勁過呂布
2007-06-24 04:33:35 UTC
Permalink
※ 引述《forris (喬巴)》之銘言:
: 其實原來的題目是:
: 用類似 C 裡的 inverse (x) 函式,撰寫一程式解決下列問題:
: 所有的四位數整數中存在有些四位數整數乘以一個個位數整數之後,
: 會變成該四位數相反順序的數字。
: 例如:2178 * 4 = 8712
: 請撰寫一程式找出所有符合上述條件的四位數及所對應的個位數,並於螢幕上印出。
: 我是用 StringBuffer.reverse() , 但是要轉回數值時卻出錯,
: 這裡又無法寫出程式碼,只能把錯誤訊息問問大家有無解決之道

剛剛試著寫了一遍,應該是不會有問題才對,以下是我寫的 inverse(x) function:

public static int inverse(int original) {
int result = 0;
String tmp = String.valueOf(original);
StringBuffer t = new StringBuffer(tmp);
t.reverse();

return Integer.parseInt(t.toString());
}

應該是不會有問題的啊 :O

--
很多人以為 所以我要 其實我是個快
我是大學生 告訴大家 三十歲的怪叔叔
● ●/ ︿ ︿
/勁\ <勁 ●
ㄨ /\ ㄨ


--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 218.102.37.14
c***@kkcity.com.tw
2007-06-24 09:16:37 UTC
Permalink
Post by 喬巴
其實原來的題目是:
用類似 C 裡的 inverse (x) 函式,撰寫一程式解決下列問題:
所有的四位數整數中存在有些四位數整數乘以一個個位數整數之後,
會變成該四位數相反順序的數字。
例如:2178 * 4 = 8712
請撰寫一程式找出所有符合上述條件的四位數及所對應的個位數,並於螢幕上印出。
我是用 StringBuffer.reverse() , 但是要轉回數值時卻出錯,
這裡又無法寫出程式碼,只能把錯誤訊息問問大家有無解決之道
根據題目也試寫了一遍,不過是用String比對的方式,可以參考一下

public static void main(String arg[]) {
int i=1000;

while(i<=9999){

String s=new String(Integer.toString(i));


for(int j=1;j<=9;j++){
StringBuilder s2=new StringBuilder(Integer.toString(i*j));
String s3=new String(s2.reverse());
if(s.equals(s3))
System.out.println(i+"*"+j+"="+i*j);
}
i++;
}
}
--
┌─────◆KKCITY◆─────┐ ■ KKBOX 可立刻 聽音樂 ■ 
│ bbs.kkcity.com.tw │  ■■所有想找的歌通通不必等 ■■ 
└──《From:59.112.102.53 》──┘ ■■■http://www.kkbox.com.tw■■■
--

继续阅读narkive:
Loading...