字符串翻转问题在开发中经常遇到,这里通过一个实现类来做个小结。当然,这也可能在Java Script中用到,那只有用JS的语法来实现,道理是一样的。
public class StringReverse {
/**
* 字符串翻转
*
* @param args
*/
public static void main(String[] args) {
System.out.println("=====递归方法=====");
System.out.println(method1("abcd"));
System.out.println(method1("abcde"));
System.out.println("=====递归方法=====");
System.out.println(method2("abcd"));
System.out.println(method2("abcde"));
System.out.println("=====带行间翻转=====");
System.out.println(method3("abc\ndef\nghi\njkl"));
}
/*
* 非递归方法
*/
public static String method1(String str) {
char c[] = str.toCharArray();
char t;
for (int i = 0; i < (str.length() + 1) / 2; i++) {
t = c[i];
c[i] = c[c.length - i - 1];
c[c.length - i - 1] = t;
}
String str2 = new String(c);
return str2;
}
/*
* 递归方法
*/
public static String method2(String s) {
if (s.length() > 1)
return method2(s.substring(1)) + s.substring(0, 1);
else
return s;
}
/*
* 带行间的翻转
*/
public static String method3(String s) {
String[] s1 = s.split("\n");
String s2 = "";
for (int i = s1.length - 1; i >= 0; i--) {
s2 += method2(s1[i]);
if (i != 0) {
s2 += "\n";
}
}
return s2;
}
}
输出结果:
=====递归方法=====
dcba
edcba
=====递归方法=====
dcba
edcba
=====带行间翻转=====
lkj
ihg
fed
cba
分享到:
相关推荐
在Java编程语言中,字符串翻转是一个常见的操作,但要求单词不翻转则需要更复杂的逻辑处理。这个任务涉及到字符串的处理、字符数组的操作以及对单词边界的判断。以下是对这个知识点的详细解释: 首先,我们需要理解...
利用java实现字符串的反转,字符串中简单的函数利用
Java反转字符串单词不改变标点符号的位置是指在Java编程中实现反转字符串单词的操作,而不改变标点符号的位置。这种操作在文本处理和字符串处理领域中非常重要。 在Java中,可以使用Stack数据结构来实现反转字符串...
java 算法-字符串翻转实现 题目:反转句子。例如“come here boy”->“boy here come”单词间为空格
1. **初始化字符串**:首先通过`args[0]`获取命令行参数中的字符串。 2. **转换为字符数组**:使用`toCharArray()`方法将字符串转换为字符数组`ch`。 3. **创建新数组并填充**:创建一个与原字符数组长度相同的字符...
在Java编程语言中,翻转字符串是一个常见的任务,有多种不同的方法可以实现。这里我们将详细讨论在给定的代码中提到的七种翻转字符串的实现方式,并分析它们的原理和适用场景。 1. **递归方法(reverse1)**: 这...
熟悉java的相关操作,达到孰能生巧的境界,希望对彼此有所帮助
首先,第一种方法是将字符串翻转,判断翻转后的字符串和原字符串是否相等。这种方法使用 StringBuilder 的 reverse 方法将字符串反转,然后使用 compareTo 或 equals 方法判断反转后的字符串与原字符串是否相等。...
在Java中,可以通过`BufferedReader`类从字符流中读取文本,并利用循环来实现字符串的反转。 1. **引入必要的包**: ```java import java.io.*; ``` 2. **创建`BufferedReader`实例**: - 首先创建`...
4. **数组翻转**:将字符串转换为字符数组,然后使用数组的翻转功能,如C++中的`std::reverse`,Java中的`Collections.reverse`。 5. **StringBuilder/Buffer**:在Java中,可以使用`StringBuilder`或`StringBuffer...
在Java编程语言中,字符串是一个不可变的对象,这意味着一旦创建了字符串对象,就不能直接修改它的内容。然而,我们可以使用各种方法来实现字符串的反转,包括反转整个字符串或字符串中的指定部分。以下是一些关于...
Java字符串操作技巧总结 Java中的字符串操作技巧非常丰富,除了字符串反转操作外,还有许多其他的字符串操作技巧,例如字符串的截取、字符串的连接、字符串的比较等等。 本站专题《Java字符与字符串操作技巧总结》...
在LeetCode的第151题“翻转字符串里的单词”中,主要涉及的问题是处理字符串,特别是如何在保持单词顺序不变的情况下翻转每个单词。这个问题可以被看作是字符串处理和分词的一个实例,主要涉及到以下几个关键知识点...
_151_翻转字符串里的单词.java
- **C++/Java中的substring()**:这些语言中的substring()方法用于获取字符串的子串,而Python的切片操作则更加灵活且易于理解。 - **JavaScript中的slice()**:虽然JavaScript也有slice()方法,但Python的切片操作...
在Java编程中,有时我们需要对字符串进行特定维度的反转操作,比如题目中提到的“以单词的维度反转字符串”。这通常涉及到字符串处理和数据结构的运用。本问题是一道典型的面试题,旨在考察测试工程师对字符串操作的...
如果输入:My name is Xiaogang 输出:Xiaogang is name My 代码具有去句子前后空格功能,并且有注释
- 空间复杂度:O(N),新建的列表(Python)或StringBuilder(Java)中的字符串总长度≤N,占用O(N)大小的额外空间。 ```python class Solution: def reverseWords(self, s: str) -> str: s = s.strip() i, j = len(s...
使用Apache Commons Lang库中的`StringUtils.join()`方法,可以将数组元素连接成一个字符串,每个元素之间由指定的分隔符隔开: ```java String[] elements = {"a", "b", "c"}; String str = StringUtils.join...