Java实现字符串反转

起因

自己在刷题的过程中,想把一个字符串翻转一下,便写了下面的代码:

	String str = "abcd";
	str = str.reverse();

发现行不通,这是为什么呢?


分析

在Java中,字符串是不可变的对象,这意味着一旦一个字符串对象被创建,它的值就不能被修改。因此,如果你尝试使用 .reverse() 方法翻转一个字符串,你将会收到一个编译错误,因为该方法是 StringBuilderStringBuffer 类的方法,而不是 String 类的方法。


解决方案

如果想要翻转一个字符串,你可以使用以下两种方法之一:

  1. 使用 StringBuilderStringBuffer创建一个可变的字符串对象,然后使用 .reverse() 方法来翻转它,最后将其转换回一个不可变的字符串对象。示例代码如下:
	String str="runoob";
    String reverse = new StringBuffer(str).reverse().toString();
    System.out.println("字符串反转前:"+str);
    System.out.println("字符串反转后:"+reverse);
  1. 使用字符数组来翻转字符串。你可以将字符串转换为字符数组,然后使用一个循环来翻转该数组中的字符,最后再将字符数组转换回字符串。示例代码如下:
	String str = "Hello, World!";
	char[] charArray = str.toCharArray();
	
	for (int i = 0; i < charArray.length / 2; i++) {
    	char temp = charArray[i];
    	charArray[i] = charArray[charArray.length - 1 - i];
    	charArray[charArray.length - 1 - i] = temp;
	}

	String reversedStr = new String(charArray);

	System.out.println(reversedStr); // 输出 "!dlroW ,olleH"

你可能感兴趣的:(#,Java,java,字符串,翻转)