iT邦幫忙

2021 iThome 鐵人賽

DAY 23
0
自我挑戰組

JAVA簡易教學+CPE歷屆試題講解系列 第 23

[iT鐵人賽Day23]練習題(2)

嗨,大家好,由於本人昨天去打了疫苗,然後晚上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)簡單來說就是把字串從後向前顯示出來。
程式碼結果如下:
https://ithelp.ithome.com.tw/upload/images/20210923/201405678r0u2bB5z5.png


上一篇
[iT鐵人賽Day22]練習題(1)
下一篇
[iT鐵人賽Day24]練習題(3)
系列文
JAVA簡易教學+CPE歷屆試題講解30

尚未有邦友留言

立即登入留言