作者VVii (VVii)
看板Soft_Job
標題Re: [閒聊] 學校教的一點用都沒有,可憐
時間Tue Jul 20 01:04:59 2010
抱歉 小弟還是在學生
其實之前都是寫C 對java還是初學的階段
所以比較直覺想到不是用這些JAVA API的方式
所以只有用到length...
還請各位多多指教
不知道有無需要改進的地方 自己常常會有過於冗長的問題
當然目前只有考慮最佳狀況( 第一個單字前沒有空白等等,計算的話就是都是全整數 )
===java新手版===
『給你String API: indexOf, subString, length
把"this is a String"這樣的字串以word為單位做反序輸出』
================
public class Main {
public static void main ( String[] args ) {
String str = "this is a String";
int length = str.length();
PrintAllWordsByRev( str, length );
} // main()
public static void PrintAllWordsByRev( String str, int len ) {
String tmp; // 用來存放一個單字(一次一個字元存入)
int index = len - 1; // 最初從字串尾巴開始
boolean isDoneAWord; // 是否完成一個單字了,由空白決定
boolean isAllDone = false; // 是否所有單字完成,由index決定
while ( !isAllDone ) {
isDoneAWord = false;
tmp = new String(); // 重新初使 一次僅一個單字
for ( ; !isDoneAWord ; index-- ) {
// 處理單一單字
if ( index == -1 ) { // 最後一筆(及前面第一個)單字處理好
// ※因為index : 0為最前面單字的第一字元 之後for遞減 變-1
isDoneAWord = true; // 跳出for
isAllDone = true; // 以及外面的while ,全好了
} // if
else if ( str.charAt(index) == ' ' ) { // 單字間的空白
isDoneAWord = true; // 跳出for 準備處理下個單字
} // else if
else { // not white space
tmp = str.charAt(index) + tmp;
} // else
} // for 處理一個單字於tmp
System.out.println( tmp ); // 第二題的計算
// 就只要用Integer.parseInt另外改一下
// 另外用個變數累加即可
} // while 整個句子
} // PrintAllWordsByRev()
} // class Main
--
※ 發信站: 批踢踢實業坊(ptt.cc)
◆ From: 122.126.165.10
※ 編輯: VVii 來自: 122.126.165.10 (07/20 01:14)
→ rocairforce:這啥標題 07/20 02:49
→ VVll:這啥鬼 07/20 09:37
→ a2975313:這什麼東東...怎麼會開始套論程式碼,離題了吧~ 07/20 16:17
→ prag222:時間太多還是嫌程式寫不夠多,難道鄉民下班後還要看你CODE 07/21 05:03