嗨,大家好,由於本人昨天去打了疫苗,然後晚上9點開始被副作用折騰
以至於過了12點不能馬上發文
然後今天要發文的時候,鐵人賽的網頁還一度打不開
導致我現在才可以來發今天的文章
那就讓我們進入正題吧
上次講了12/22的第一題,今天來講第二題練習題
題目大意是:給定一個字串,重新排列字串裡字的順序。
例題:
一個長度48的字串,分成8群,每一群長度為6,
"TOBENUMBERONEWEMEETAGAINANDAGAINUNDERBLUEICPCSKY"
重新排成:
"UNEBOTNOREBMEEMEWENIAGATAGADNAEDNUNIIEULBRYKSCPC"
然後題目要我們改變下列Simple
3 ABCEHSHSH
5 FAOETASINAHGRIONATWONOQAONARIO
0
程式碼如下:
import java.util.*;
import static java.lang.System.*;
public class main{
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
while(sc.hasNext())
{
int a = sc.nextInt();
if(a == 0) continue;
String b = sc.next();
a = b.length()/a;
for(int i = 0 ; i < b.length() ; i+=a)
{
for(int j = 0 ; j < a ; j++)
{
System.out.print((char)b.charAt((i+a-1)-j));
}
}
System.out.println("");
}
}
};
前面說過的程式碼,今天來複習一些些:
static: 靜態的,表示在程式剛開始執行前,就需要把這個載入到記憶體。所以主程式必須是static,不然記憶體中沒有你的程式碼,將無法執行。
void: 這是回傳值的型態,void表示沒有回傳東西。
String[] args: 程式進入點的 main 可以接受字串陣列當做參數,String[] 表示字串陣列,args是為這些字串陣列取的變數名稱,當然也可以寫 main(String[] xxx)。
然後再說說今天新的東西:
Scanner:取得使用者輸入的數字或字串。System.in就是系統的輸入。
hasNext:常用判斷是否還有輸入的數字或字串。
nextInt:只讀取數字,剩下"\n"還沒有讀取。
int a 把a設定成整數數字,String b 把b設定成字串
a = b.length()/a 就是a = b的長度除以a
charAt:顯示出()中對應的字元。而((i+a-1)-j)簡單來說就是把字串從後向前顯示出來。
程式碼結果如下: