首页编程java编程java回文字符串是什么,如何判断一个字符串是否是回文

java回文字符串是什么,如何判断一个字符串是否是回文

编程之家2023-10-1295次浏览

大家好,今天小编来为大家解答以下的问题,关于java回文字符串是什么,如何判断一个字符串是否是回文这个很多人还不知道,现在让我们一起来看看吧!

java回文字符串是什么,如何判断一个字符串是否是回文

Java语言如何判断一个字符串是否回文

import java.util.*;public class StringBufferDemo{

public static void main(String[] args){

// TODO Auto-generated method stub

java回文字符串是什么,如何判断一个字符串是否是回文

//从键盘上输入一个字符串str

String str="";

System.out.println("请输入一个字符串:");

java回文字符串是什么,如何判断一个字符串是否是回文

Scanner in=new Scanner(System.in);

str=in.nextLine();

//根据字符串创建一个字符缓存类对象sb

StringBuffer sb=new StringBuffer(str);

//将字符缓存中的内容倒置

sb.reverse();

//计算出str与sb中对应位置字符相同的个数n

int n=0;

for(int i=0;i<str.length();i++){

if(str.charAt(i)==sb.charAt(i))

n++;

}

//如果所有字符都相等,即n的值等于str的长度,则str就是回文。

if(n==str.length())

System.out.println(str+"是回文!");

else

System.out.println(str+"不是回文!");

}

}

这只是一种方法而已,仅供参考!希望楼主用自己的思维写出高效的代码,与君共勉!!

java中对输入的字符串进行判断

用equals方法进行比较判断,如:输入的字符串为str=zhidao

"zhidao".equals(str))

Equals则是string对象的方法

我们比较无非就是这两种 1、基本数据类型比较 2、引用对象比较

1、基本数据类型比较

Equals都比较两个值是否相等。相等为true否则为false;

2、引用对象比较

Equals都是比较栈内存中的地址是否相等。相等为true否则为false;

java 编写一个方法,找出一个字符串中最长的回文子串

Java code

?

1

2

3

4

5

6

7

8

9

10

11

12

13

14

15

16

17

18

19

20

21

22

23

24

25

26

27

28

29

30

31

32

33

34

35

36

37

38

39

40

41

42

43

44

45

46

47

48

49

50

51

52

53

54

55

56

57

58

59

60

61

62

63

64

65

66

67

68

69

70

71

72

73

74

75

76

77

78

79

80

81

82

83

84

import java.util.ArrayList;

import java.util.List;

public class Palindrome{

/*找出一个字符串中最长的回文子串

*从字符串中第i个字符开始的所有非空回文子串的个数,记作为Ci.此方法的复杂度为

* O(C1+ C2+...+ Cn)

*当字符串中任意两个非空回文子串的起始位置不同时, C1= C2=...= Cn= 1,复杂度为O(N);

*当字符串所有字符均为同一字符时, Ci= n- i,此时复杂度为O(N*N);

*在多数情况下,此方法的复杂度远低于O(N*N).

*/

public List<String> getLongestPalindrome(String theString){

int strLen= theString.length();

List<String> results= new ArrayList<String>(strLen);

if(strLen== 0){

return results;

}

//从第i个位置开始的所有回文子串的结束位置.

int[] endIndice= new int[strLen+ 1];

// endIndice中有效数据的长度.

int numberOfPalindromes= 1;

//最长回文子串的长度.对于非空串至少可以找到长度为1的回文子串.

int maxLen= 1;

results.add(theString.substring(strLen- 1));

//计算从第i个位置开始的所有回文子串.这样的子串分为三种:

// 1.在从第i+1个位置开始的回文子串的基础上,在两端加上相同的字符;

// 2.长度为1的回文子串;

// 3.空串.

for(int i= strLen- 2; i>= 0; i--){

int j= 0, k= 0;

while(j< numberOfPalindromes){

if(theString.charAt(i)== theString.charAt(endIndice[j])){

endIndice[k]= endIndice[j]+ 1;

int newLength= endIndice[k]- i;

if(newLength>= maxLen){

if(newLength> maxLen){

maxLen= newLength;

results.clear();

}

results.add(theString.substring(i, endIndice[k]));

}

if(endIndice[k]< strLen){

k++;

}

}

j++;

}

//加入长度为1的子串

endIndice[k++]= i+ 1;

if(maxLen== 1){

results.add(theString.substring(i, i+ 1));

}

//加入空串

endIndice[k++]= i;

numberOfPalindromes= k;

}

return results;

}

public static void main(String[] args){

Palindrome p= new Palindrome();

printList(p.getLongestPalindrome("gabcecbaefd"));

printList(p.getLongestPalindrome("bbcbaefccfg"));

printList(p.getLongestPalindrome("aaaaaaaaaaa"));

printList(p.getLongestPalindrome("abcdefghijk"));

printList(p.getLongestPalindrome("abcdeeddejk"));

printList(p.getLongestPalindrome(""));

}

public static void printList(List<? extends Object> list){

System.out.println("**************************");

System.out.println(list.size()+" result(s):");

for(Object o: list){

System.out.println(o);

}

}

}

如何判断一个字符串是否是回文

首先,理解什么是回文字符串,简单的一句话概括就是关于中心左右对称的字符串。例如:ABCBA或者AACCAA是回文字符串;ABCCA或者AABBCC不是回文字符串。

判断方法就是,依次看两端的字符是否相等。例如:ABCBA,第一个字符与最后一个字符相等,第二个字符与倒数第二个字符相等,第三个字符是中心字符,无需判断。如果是AACCAA就要判断。所以上面的字符串是回文字符串。

以下是C语言实现判断回文字符串的代码。

#include<stdio.h>

#include<string.h>

intmain(void)

{

chars[30];

intb=0;//1表示不是回文字符串

puts("请输入一个字符串:");

scanf("%s",s);

for(inti=0;i<strlen(s)/2;i++)

if(s[i]!=s[strlen(s)-i-1])

{

b++;

break;

}

if(b)

printf("这不是回文字符串。");

else

printf("这是回文字符串。");

return0;

}

OK,本文到此结束,希望对大家有所帮助。

java加注解有什么用,java中注释和注解于什么区别啊java开源项目有什么(Java开源项目有哪些)