提交 f28fba38 编写于 作者: W wizardforcel

2020-06-13 15:12:29

上级 a5cf0f97
......@@ -4,7 +4,7 @@
[**回文**](https://en.wikipedia.org/wiki/Palindrome "Palindrome")是一个单词,词组,数字或其他单元序列,可以在任一方向上以相同的方式读取,通常是否使用逗号,分隔符或其他单词分隔符*不是必需的*
类似地,回文数是指如果所有数字都颠倒了就代表相同数字的那些数字(下划线可以忽略较大的数字,例如`1_00_00_001`)。 数字文字中的下划线是 [**Java 7 功能**](//howtodoinjava.com/java-7/improved-formatted-numbers-in-java-7/ "formatted-numbers-in-java-7")中的新增内容。
类似地,回文数是指如果所有数字都颠倒了就代表相同数字的那些数字(下划线可以忽略较大的数字,例如`1_00_00_001`)。 数字文字中的下划线是 [**Java7 功能**](//howtodoinjava.com/java-7/improved-formatted-numbers-in-java-7/ "formatted-numbers-in-java-7")中的新增内容。
## 1\. Java 回文字符串示例
......@@ -12,7 +12,7 @@
#### 1.1 使用 Apache Commons `StringUtils`检查字符串回文
**Java 中用于字符串**的简单回文程序。 它也是 Java 中使用**反方法**的回文程序。
**Java 中用于字符串**的简单回文程序。 它也是 Java 中使用**反方法**的回文程序。
```java
public class Main
......@@ -56,9 +56,9 @@ public class Main
#### 1.3 用`for`循环检查字符串回文
使用[`for`循环](https://howtodoinjava.com/java/basics/for-loop-in-java/)[`charAt()`](https://howtodoinjava.com/java/string/string-charat-method-example/)方法遍历最后一个索引的字符串字符来获取**反字符串**,并创建新字符串。
使用[`for`循环](https://howtodoinjava.com/java/basics/for-loop-in-java/)[`charAt()`](https://howtodoinjava.com/java/string/string-charat-method-example/)方法遍历最后一个索引的字符串字符来获取**反字符串**,并创建新字符串。
仅当您在 Java 中检查**字符串回文而不使用反方法**时,才使用此方法。
仅当您在 Java 中检查**字符串回文而不使用反方法**时,才使用此方法。
```java
public class Main
......
......@@ -2,7 +2,7 @@
> 原文: [https://howtodoinjava.com/puzzles/puzzle-check-if-string-is-complete-contains-all-alphabets/](https://howtodoinjava.com/puzzles/puzzle-check-if-string-is-complete-contains-all-alphabets/)
如果字符串包含从 a 到 z 的所有字符,则认为该字符串是完整的。 给定一个字符串,检查它是否完。 例如:
如果字符串包含从 a 到 z 的所有字符,则认为该字符串是完整的。 给定一个字符串,检查它是否完。 例如:
**样本输入**
......@@ -21,7 +21,7 @@ YES
NO
```
## 使用 for 循环和 indexOf()的解决方案
## 使用`for`循环和`indexOf()`的解决方案
我写了一个快速的功能,可以找到这个完整的字符串。
......@@ -105,7 +105,7 @@ public class CheckAllAlphabetsAlgorithms
}
```
**Output:**
**输出:**
```java
TRUE
......
# Java 中的反向字符串 - 单词反向字符串
# Java 中的反转字符串 - 单词反转字符串
> 原文: [https://howtodoinjava.com/puzzles/how-to-reverse-string-in-java/](https://howtodoinjava.com/puzzles/how-to-reverse-string-in-java/)
......@@ -6,7 +6,7 @@
[Java 面试](https://howtodoinjava.com/java-interview-questions/)中,这是初学者常见的题目。 让我们记住这些解决方案以便快速调用。
## 1\. Java 程序反转字符串
## 1\. 反转字符串的 Java 程序
您可以使用`StringBuilder.reverse()`方法轻松地*逐字符反转*字符串。
......@@ -26,7 +26,7 @@ Reverse String -> moc.avaJnIoDoTwoH
## Java 程序通过单词反转字符串
**通过单词**反转字符串内容时,最自然的方法是使用`StringTokenizer``Stack`。 如您所知,`Stack`是一个实现易于使用的**后进先出(LIFO)**对象栈的类。
**通过单词**反转字符串内容时,最自然的方法是使用`StringTokenizer``Stack`。 如您所知,`Stack`是一个实现易于使用的后进先出(LIFO)对象栈的类。
```java
]
......@@ -62,5 +62,6 @@ practices coding and concepts java smart for blog technology Java
参考:
[StringBuilder.reverse()Java 文档](https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html#reverse--)
[StringTokenizer](https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html)
\ No newline at end of file
[`StringBuilder.reverse()` Java 文档](https://docs.oracle.com/javase/8/docs/api/java/lang/StringBuilder.html#reverse--)
[`StringTokenizer`](https://docs.oracle.com/javase/8/docs/api/java/util/StringTokenizer.html)
\ No newline at end of file
......@@ -23,7 +23,7 @@ public static long factorialIterative ( long n )
## 2)使用递归计算阶乘
如果您使用的是 Java 7 或更低版​​本,那么这是您的最佳选择。 一个很好接受的答案。 它使用递归来计算阶乘。
如果您使用的是 Java7 或更低版​​本,那么这是您的最佳选择。 一个很好接受的答案。 它使用递归来计算阶乘。
```java
public static long factorialRecursive( long n )
......@@ -33,7 +33,7 @@ public static long factorialRecursive( long n )
```
## 3)使用流计算阶乘[Java8]
## 3)使用流计算阶乘(Java8)
Java8 支持流,您可以使用流以最有效的方式计算阶乘,如下所示。
......@@ -46,20 +46,20 @@ public static long factorialStreams( long n )
```
* 在这里,[`LongStream`](https://docs.oracle.com/javase/8/docs/api/java/util/stream/LongStream.html).rangeClosed(2, n)方法创建内容为`[2, 3, ... , n]`的 long 流。
* 在这里,[`LongStream.rangeClosed(2, n)`](https://docs.oracle.com/javase/8/docs/api/java/util/stream/LongStream.html)方法创建内容为`[2, 3, ... , n]``long`流。
* `reduce (a, b) -> a * b`表示每对`a``b` – 将它们相乘并返回结果。 然后结果继续到下一轮。
* 在简化方法中使用的值“ 1”在第一次迭代中用作变量`a`的起始值。
* 在简化方法中使用的值“1”在第一次迭代中用作变量`a`的起始值。
## 4)使用 BigInteger 计算大于 20 的数字的阶乘
## 4)使用`BigInteger`计算大于 20 的数字的阶乘
如果您为数字> 20 运行以上示例中的任何一个; 由于`long`数据类型的限制,您将获得错误的输出。
如果您为大于 20 的数字运行以上示例中的任何一个; 由于`long`数据类型的限制,您将获得错误的输出。
```java
System.out.println(getFactorial(20)); // 2432902008176640000
System.out.println(getFactorial(21)); // -4249290049419214848
```
值变得比`long`所能容纳的更大。 **类`BigInteger`类分配所需的内存,以容纳需要保存的所有数据位。** 显然,如果系统中预设了那么多的内存,则只能
值变得比`long`所能容纳的更大。 **`BigInteger`类分配所需的内存,以容纳需要保存的所有数据位。** 显然,如果系统中预设了那么多的内存,则只能这样
现在,您将需要[`BigInteger`](https://docs.oracle.com/javase/7/docs/api/java/math/BigInteger.html)来保存更大的值,并使用以下代码获取阶乘。
......
......@@ -2,9 +2,9 @@
> 原文: [https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/](https://howtodoinjava.com/puzzles/fizzbuzz-solution-java/)
**FizzBu​​zz** 是一款有趣的游戏,主要在小学阶段玩。 规则很简单:轮到您时,请说出下一个号码。 但是,如果该数字是 5 的倍数,则应改为说“嘶嘶声”(最好带有法国口音)。 如果数字是 7 的倍数,则应说“嗡嗡声”。 而且,如果两者均是倍数,则应说“ fizzbuzz”。 如果您搞砸了,就出局了,比赛在没有您的情况下继续进行。
**FizzBu​​zz** 是一款有趣的游戏,主要在小学阶段玩。 规则很简单:轮到您时,请说出下一个号码。 但是,如果该数字是 5 的倍数,则应改为说“fizz”(最好带有法国口音)。 如果数字是 7 的倍数,则应说“buzz”。 而且,如果两者均是倍数,则应说“fizzbuzz”。 如果您搞砸了,就出局了,比赛在没有您的情况下继续进行。
请注意,可以使用不同的除数来代替 5 和 7,也可以使用不同的除数,并且不同的单词或手势可以代替“嘶嘶声”或“嗡嗡声”。 [[参考](https://en.wikipedia.org/wiki/Fizz_buzz)]
请注意,可以使用不同的除数来代替 5 和 7,也可以使用不同的除数,并且不同的单词或手势可以代替“fizz”或“buzz”([参考](https://en.wikipedia.org/wiki/Fizz_buzz))。
让我们学习编写一个程序来用 Java 模拟这个游戏。
......@@ -21,7 +21,7 @@ IntStream.rangeClosed(1, 100)
## 在 Java8 之前解决 FizzBu​​zz
如果您仍未使用 Java8,则此 Fizzbuzz 解决方案将使用基本的 for 循环并遍历数字范围并确定要打印的内容。
如果您仍未使用 Java8,则此 Fizzbuzz 解决方案将使用基本的`for`循环并遍历数字范围并确定要打印的内容。
```java
for (int i = 1; i <= num; i++)
......
......@@ -2,17 +2,17 @@
> 原文: [https://howtodoinjava.com/puzzles/find-missing-number-from-series/](https://howtodoinjava.com/puzzles/find-missing-number-from-series/)
[Java 面试](https://howtodoinjava.com/java-interview-questions/)上,一个常见的题目是 – 从一系列数字或数组中找到缺失的数字。 这个题目已经在 Amazon.com 中问过。
[Java 面试](https://howtodoinjava.com/java-interview-questions/)上,一个常见的题目是 – 从一系列数字或数组中找到缺失的数字。 这个题目已经在 Amazon 中问过。
在这个 Java 题目中,您有一系列数字开头(例如 1….N),而该系列中恰好缺少一个数字。 您必须编写一个 **Java 程序来查找**系列中的缺失数字。
在这个 Java 题目中,您有一系列数字开头(例如`1…N`),而该系列中恰好缺少一个数字。 您必须编写一个 **Java 程序来查找**系列中的缺失数字。
## 查找电话号码的解决方案
## 查找数字的解决方案
出乎意料的是,仅当您已经知道该题目的解决方案时,它才非常简单。
1. 计算`A = n (n+1)/2`,其中 n 是序列 1…N 中的最大数。
2. 计算 B =给定序列中所有数字的总和
3. 缺少号码= A – B
1. 计算`A = n (n+1)/2`,其中`n`是序列`1…N`中的最大数。
2. 计算`B`给定序列中所有数字的总和
3. 缺少号码等于`A – B`
让我们用代码编写解决方案。
......@@ -45,9 +45,9 @@ Output:
```
## 查找电话号码的解决方案 – Java8
## 查找数字的解决方案 – Java8
上面的代码虽然很简单,但是可以使用新语言功能(例如 [Java8](https://howtodoinjava.com/java-8-tutorial/) 中的 [lambda](https://howtodoinjava.com/java8/complete-lambda-expressions-tutorial-in-java/) )减少许多行。 让我们看看如何?
上面的代码虽然很简单,但是可以使用新语言功能(例如 [Java8](https://howtodoinjava.com/java-8-tutorial/) 中的 [lambda](https://howtodoinjava.com/java8/complete-lambda-expressions-tutorial-in-java/))减少许多行。 让我们看看如何?
```java
import java.util.Arrays;
......@@ -76,4 +76,4 @@ Output:
学习愉快!
参考: [SO 线程](https://stackoverflow.com/questions/2113795/quickest-way-to-find-missing-number-in-an-array-of-numbers)
\ No newline at end of file
参考: [SO 帖子](https://stackoverflow.com/questions/2113795/quickest-way-to-find-missing-number-in-an-array-of-numbers)
\ No newline at end of file
......@@ -324,7 +324,7 @@ System.out.println(blogName.equals(anotherString)); //true
## 14.我们可以在开关盒中使用 String 吗?
是的,自 Java 7 起,您可以在`switch`语句中使用 [`String`类。在 Java 7 之前,这是不可能的,您必须使用`if-else`语句才能实现类似的行为。](https://howtodoinjava.com/java7/string-class-is-supported-in-switch-statement-in-java-7/)
是的,自 Java7 起,您可以在`switch`语句中使用 [`String`类。在 Java7 之前,这是不可能的,您必须使用`if-else`语句才能实现类似的行为。](https://howtodoinjava.com/java7/string-class-is-supported-in-switch-statement-in-java-7/)
```java
String number = "1";
......
......@@ -54,7 +54,7 @@ Eclipse 预定义模板
## 1)IO 模板文件
以下模板对于读取或写入文件很有用。 他们使用 Java 7 功能(如`try-with-resources`)自动关闭文件。 他们还使用 NIO2.0 中的方法来获取缓冲的读取器并读取文件。
以下模板对于读取或写入文件很有用。 他们使用 Java7 功能(如`try-with-resources`)自动关闭文件。 他们还使用 NIO2.0 中的方法来获取缓冲的读取器并读取文件。
**a)从文件**中读取文本
......
Markdown is supported
0% .
You are about to add 0 people to the discussion. Proceed with caution.
先完成此消息的编辑!
想要评论请 注册