Java Top.

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程

1.介绍

在本文中,我们将看到我们如何检查是否提供了细绳是一个使用Java的回文。

parindrome是一个字,短语,数字或其他字符序列,其读取相同的向后,例如“女士”或“赛马卡”。

2.解决方案

在以下部分中,我们将查看各种方式检查给定的细绳是一个回文。

2.1。一种简单的方法

我们可以同时开始迭代给定的细绳向前和向后,一次一个角色。如果存在匹配循环的匹配;否则,循环退出:

公共布尔ispalindrome(字符串文本){String Clean = text.replaceAll(“\\ s +”,“”).tolowercase();int length = clean.length();int forward = 0;int后向=长度 -  1;虽然(向后>前进){char forwardchar = clean.charat(转发++);Char BackwardChar = CLEAN.CHARAT(落后 - );if(forwardchar!= backwardchar)返回false;} return true;}

2.2。扭转字符串

有一些不同的实现,适合此用例:我们可以使用API​​方法StringBuilder.stringbuffer.检查Palindromes时的课程,或者我们可以扭转细绳没有这些课程。

让我们来看看没有助手API的代码实现:

public boolean ispalindromereversethestring(StringBuilder reverse = new StringBuilder();string clean = text.replaceall(“\\ s +”,“”).tolowercase();char [] plain = clean.tochararray();for(int i = plain.length-1; i> = 0; i--){reverse.append(plain [i]);} return(反向.tostring())。等于(清洁);}

在上面的赛段中,我们只是迭代给定的细绳从最后一个字符并将每个字符附加到下一个字符,一直到第一个字符,从而反转给定细绳。

最后,我们在给定的情况下测试平等细绳并逆转细绳。

可以使用API​​方法实现相同的行为。

让我们看看快速演示:

public boolean ispalindromeusingstringbuilder(字符串文本){string clean = text.replaceall(“\\ s +”,“”).tolowercase();StringBuilder Plain = New StringBuilder(干净);StringBuilder反向= plain.reverse();返回(反向.Tostring())。等于(清洁);公共布尔ispalindromeUsingStringBuffer(字符串文本){String Clean = Text.replaceAll(“\\ s +”,“”).tolowercase();StringBuffer Plain =新的StringBuffer(干净);stringbuffer反向= plain.reverse();返回(反向.Tostring())。等于(清洁);}

在代码片段中,我们调用撤销()从中的方法StringBuilder.stringbuffer.api扭转给定细绳并测试平等。

2.3。使用溪流API.

我们也可以使用intstream.提供解决方案:

公共布尔ispalindromeUsingIntStream(字符串文本){String Temp = text.replaceAll(“\\ s +”,“”).tolowercase();返回IntStream.Range(0,Temp.Length()/ 2).nonematch(i  - > temp.Charat(i)!= temp.Charat(Temp.Length() -  I  -  1));}

在上面的代码段中,我们验证了每个末端的字符对都没有细绳履行谓词状况。

2.4。使用递归

递归是一种解决这些问题的一种非常流行的方法。在示例中,我们递归地迭代给定细绳并测试以了解它是一个回文:

公共布尔IspalindromerEcersive(String Text){String Clean = Text.replaceAll(“\\ s +”,“”).tolowercase();返回reachosivepalindrome(清洁,0,clean.length() -  1);私人布尔recursivepalindrome(String text,forward,int向后){if(转发==向后){返回true;}如果((text.charat(转发))!=(text.charat(后退)))){返回false;}如果(转发<后向+ 1){return reachosivepalindrome(文本,前进+ 1,后向 -  1);} return true;}

3.结论

在这个快速的教程中,我们看到了如何了解是否给出了细绳是一个回文。

与始终一样,本文的代码示例可用在github上

Java底部

使用Spring 5和Spring Boot 2开始,通过学习春天课程:

>>查看课程
3.注释
最老的
最新
内联反馈
查看所有评论
评论在本文上关闭!