- 當遇到的問題有關逆序輸出,可以轉換一下思想,就是使用for循環(huán)的時候,i的初始化是從數(shù)組或者是字符串的最后一個,然后注意設置循環(huán)結束的條件,最重要的是不要忘記i--;而不是I++; ?注意:當要逆序輸出的是字符串類型,可以使用StringBuilder類,因為StringBuilder類有reverse方法,可以直接逆序,如:StringBuilder(s).reverse().toString();
但是string類型沒有,因為string類型是不可變的,所以沒有提供reverse方法。
StringBuilder類的reverse方法的使用:
String originalString = "hello";
StringBuilder reversedString = new StringBuilder(originalString).reverse();
System.out.println(reversedString.toString());
- ``Math.sqrt()` 是 Java 中的一個靜態(tài)方法,用于計算一個數(shù)的平方根。在數(shù)學上,平方根函數(shù)表示對一個非負實數(shù)求其平方根。在 Java 中,`Math.sqrt()` 方法接受一個 double 類型的參數(shù),返回值也是 double 類型,表示參數(shù)的平方根。例如,`Math.sqrt(9)` 將返回 3.0,因為 3 的平方是 9。
- 當涉及到從用戶輸入中讀取文本時,Java中的Scanner類提供了兩個主要的方法:next() 和 nextLine()。
next() 方法:
next() 方法用于讀取下一個標記(默認是由空白字符分隔的字符串)并返回。
它會忽略任何前導的空白字符,并在遇到下一個空白字符(包括空格、制表符或換行符)時停止讀取。
返回的字符串不包含遇到的空白字符。
nextLine() 方法:
nextLine() 方法用于讀取輸入中的下一行文本并返回。
它會讀取包括換行符在內的整行文本,直到遇到換行符為止。
返回的字符串包含了遇到的換行符。
因此,當你想要讀取整行文本時,應該使用 nextLine() 方法。而當你只需要讀取下一個由空白字符分隔的標記時,可以使用 next() 方法。
4.閏年的判斷: 能被 4 整除但不能被 100 整除的年份是閏年;
能被 400 整除的年份也是閏年。
5. ??????System.out.printf("%6.2f\n", num);
????????System.out.printf("%6.2f %6.2f\n", num, num);
????????System.out.printf("%6.2f %6.2f %6.2f\n", num, num, num);
效果:
這些代碼是使用Java中的`System.out.printf()`方法來格式化輸出。讓我解釋一下:
- `%6.2f`:這是一個格式說明符,它告訴`printf()`方法如何格式化輸出。在這里,`%`表示格式說明的開始,`f`表示要格式化的是浮點數(shù)。`6`表示總字段寬度為6,`.2`表示保留兩位小數(shù)。所以`%6.2f`將浮點數(shù)格式化為總寬度為6,保留兩位小數(shù)的形式。
- `\n`:這是換行符,它告訴程序在輸出完一行后換行到下一行。
- `%6.2f %6.2f`:這表示在同一行上輸出兩個格式化的浮點數(shù),中間用空格分隔。
- `%6.2f %6.2f %6.2f`:同理,這表示在同一行上輸出三個格式化的浮點數(shù),每個數(shù)之間用空格分隔。
所以,這些代碼中的`printf()`語句用于按照給定的格式輸出浮點數(shù)。
- LinkedList 是一個雙向鏈表,非常適合用于模擬環(huán)形結構,因為它可以高效地添加和刪除元素。比如可以解決約瑟夫環(huán)問題。就可以用linkedList()
- 迭代器:
int count = 0; // 初始化報數(shù)計數(shù)器 ?
Iterator<Integer> iterator = circle.iterator(); // 使用迭代器遍歷鏈表 ?
while (iterator.hasNext()) { ?
????count++; // 報數(shù)加1 ?
????if (count == 3) { // 如果報數(shù)到3,淘汰當前人 ?
????????iterator.next(); // 移動到當前人的位置(但不返回元素) ?
????????iterator.remove(); // 淘汰當前人 ?
????????count = 0; // 重置報數(shù)計數(shù)器 ?
????} else { ?
????????iterator.next(); // 移動到當前人的位置(但不返回元素) ?
????} ?
}
- 什么時候需要加上nextLine();(總結起來就是,如果你輸入字符串前有要輸入基本數(shù)據(jù)類型的,就需要有nextLine),在讀取整數(shù)后的下一行,使用 sc.nextLine() 來清空輸入緩沖區(qū)。
- 在讀取整數(shù)和讀取字符串之間,添加 sc.nextLine() 來讀取并丟棄多余的空行或換行符。
在Java中使用Scanner類讀取輸入時,特別是當輸入包含多種類型(如整數(shù)和字符串)并且這些輸入是連續(xù)的時候,通常需要格外注意換行符和輸入緩沖區(qū)的狀態(tài)。nextLine()方法會讀取直到下一個換行符(包括換行符本身)為止的所有字符,并將其作為一個字符串返回。而nextInt(), nextDouble()等方法只會讀取相應的整數(shù)或浮點數(shù),然后停留在換行符之前,不會讀取換行符。
以下是一些需要添加nextLine()的常見情況:
在讀取非字符串類型之后讀取字符串:當你首先使用nextInt(), nextDouble()等方法讀取一個整數(shù)或浮點數(shù)后,緊接著使用nextLine()讀取一個字符串時,如果不先調用nextLine()來消耗掉輸入緩沖區(qū)中的換行符,nextLine()將會立即返回,因為它已經(jīng)遇到了換行符。
java
Scanner sc = new Scanner(System.in); ?
int number = sc.nextInt(); // 用戶輸入數(shù)字后按回車,換行符留在緩沖區(qū)中 ?
String text = sc.nextLine(); // 如果沒有先調用sc.nextLine(),這里會立即返回空字符串
需要忽略多余的換行符:有時候用戶可能在輸入之間不小心多按了幾次回車,導致輸入緩沖區(qū)中有多個換行符。在這些情況下,使用nextLine()可以幫助清除這些額外的換行符。
在循環(huán)中讀取輸入:如果你在一個循環(huán)中讀取輸入,特別是當每次迭代都期望用戶輸入一個全新的值時,你可能需要在每次迭代開始時使用nextLine()來確保輸入緩沖區(qū)是干凈的。
要決定是否需要在特定情況下使用nextLine(),你應該考慮以下幾點:
輸入的類型:你是否在讀取整數(shù)或浮點數(shù)之后立即讀取字符串?
輸入的順序:用戶輸入的順序是否符合你的程序預期?
輸入緩沖區(qū)的狀態(tài):你是否確信輸入緩沖區(qū)中沒有殘留的換行符或其他字符?
如果你不確定是否需要使用nextLine(),一種簡單的測試方法是嘗試輸入一些數(shù)據(jù),并觀察程序的行為是否符合預期。如果程序沒有按預期工作,那么可能就需要考慮使用nextLine()來清理輸入緩沖區(qū)。
9.平年和閏年問題:平年和閏年是用來區(qū)分公歷年份的兩種不同情況,主要區(qū)別在于二月的天數(shù)不同。
平年是指陽歷沒有閏日或農歷沒有閏月的年份。在平年中,二月有28天,全年有365天。例如,2023年就是一個平年。
閏年則是為了彌補因人為歷法規(guī)定造成的年度天數(shù)與地球實際公轉周期的時間差而設立的。在公歷(陽歷)中,有閏日的年份叫閏年,一般年份為365天,閏年為366天。在閏年中,二月有29天,全年有366天。
確定一個年份是否為閏年,有以下幾個規(guī)則:
- 如果年份能被4整除但不能被100整除,則為閏年。
- 如果年份能被400整除,也是閏年。
例如,2000年是閏年,因為它能被400整除;而1900年則不是閏年,因為它雖然能被4整除,但也能被100整除,并且不能被400整除。
這些規(guī)則的應用對于日歷、時間計算、歷史研究等都具有重要意義。了解平年和閏年的區(qū)別和規(guī)則有助于我們更準確地進行時間相關的計算和理解。
- 進制轉換
. **進制轉換方法**:
???- Java提供了一些內置方法用于進制轉換,例如:
?????- `Integer.toBinaryString(int)`:將整數(shù)轉換為二進制字符串。
?????- `Integer.toOctalString(int)`:將整數(shù)轉換為八進制字符串。
?????- `Integer.toHexString(int)`:將整數(shù)轉換為十六進制字符串。
?????- `Integer.parseInt(String, radix)`:將指定進制的字符串轉換為十進制整數(shù),其中radix為進制數(shù)。
. **BigInteger類**:
???- 當處理大整數(shù)時,可以使用`java.math.BigInteger`類。
???- 這個類提供了用于處理任意精度整數(shù)的方法,包括轉換為不同進制的字符串表示。
?**字符串與整數(shù)之間的轉換**:
???- Java中可以使用`Integer.parseInt(String)`方法將字符串解析為整數(shù),還可以指定基數(shù)。文章來源:http://www.zghlxwxcb.cn/news/detail-850271.html
???- 另外,`Integer.toString(int)`方法可以將整數(shù)轉換為字符串表示。文章來源地址http://www.zghlxwxcb.cn/news/detail-850271.html
到了這里,關于一些知識點小細節(jié)的文章就介紹完了。如果您還想了解更多內容,請在右上角搜索TOY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關文章,希望大家以后多多支持TOY模板網(wǎng)!