本篇文章给大家谈谈JS字符串反转,以及js字符串反转方法的知识点,同时本文还将给你拓展(C#)字符串反转、5.23字符串反转的案例、5.33字符串反转功能案例、go字符串反转思路等相关知识,希望对各位
本篇文章给大家谈谈JS字符串反转,以及js字符串反转方法的知识点,同时本文还将给你拓展(C#) 字符串反转、5.23 字符串反转的案例、5.33 字符串反转功能案例、go字符串反转思路等相关知识,希望对各位有所帮助,不要忘了收藏本站喔。
本文目录一览:JS字符串反转(js字符串反转方法)
最开始的思路是,先把字符串分割,然后倒序拼接成一个新的字符串。于是有了
方法一:
var name = "My city is WH";
var nameArr = name.split('''');
var result=[];
var resultStr = '''';
for (var i = 0, l = nameArr.length; i < l; i++) {
result.unshift(nameArr[i]);
}
for (var i = 0, l = result.length; i < l; i++) {
resultStr += result[i];
}
console.log(resultStr); // HW si ytic yM
方法二:reverse(),join()
var name = "My city is WH";
var resultStr = name.split('''').reverse().join('''');
console.log(resultStr); // HW si ytic yM
方法三: charAt()
var name = "My city is WuHan";
var nameArr = name.split('''');
var resultStr = '''';
for (var i = nameArr.length-1; i >= 0; i--) {
resultStr += name.charAt(i);
}
console.log(resultStr); // naHuW si ytic yM
(C#) 字符串反转
方法一:
public static string Reverse(string name)
{
if (String.IsNullOrEmpty(name))
{
throw new Exception ("字符串不能为空!");
}
StringBuilder sb = new StringBuilder(name.Length);
for (int i = name.Length-1; i >= 0; i--)
{
sb.Append(name[i]);
}
return sb.ToString();
}
方法二:.NET3.5 以上
public static string Reverse(string name)
{
char[] reverse = name.Reverse().ToArray();
return new string(reverse);
}
方法三:二分法
public static string Reverse(string name)
{
if (String.IsNullOrEmpty(name))
{
throw new Exception ("字符串不能为空!");
}
char[] nm = name.ToCharArray();
for (int i = 0; i < (nm.Length-1 )/ 2; i++)
{
char q = nm[i];
nm[i]= nm[nm.Length - 1 - i];
nm[nm.Length - 1 - i] = q;
}
return new string(nm);
}
5.23 字符串反转的案例
/*
* 字符串反转
* 举例:键盘录入”abc”
* 输出结果:”cba”
*
* 分析:
* A:键盘录入一个字符串
* B:定义一个新字符串
* C:倒着遍历字符串,得到每一个字符
* a:length()和charAt()结合
* b:把字符串转成字符数组
* D:用新字符串把每一个字符拼接起来
* E:输出新串
*/
public class StringTest {
public static void main(String[] args) {
// 键盘录入一个字符串
Scanner sc = new Scanner(System.in);
System.out.println("请输入一个字符串:");
String line = sc.nextLine();
/*
// 定义一个新字符串
String result = "";
// 把字符串转成字符数组
char[] chs = line.toCharArray();
// 倒着遍历字符串,得到每一个字符
for (int x = chs.length - 1; x >= 0; x--) {
// 用新字符串把每一个字符拼接起来
result += chs[x];
}
// 输出新串
System.out.println("反转后的结果是:" + result);
*/
// 改进为功能实现
String s = myReverse(line);
System.out.println("实现功能后的结果是:" + s);
sc.close();
}
/*
* 两个明确: 返回值类型:String 参数列表:String
*/
public static String myReverse(String s) {
// 定义一个新字符串
String result = "";
// 把字符串转成字符数组
char[] chs = s.toCharArray();
// 倒着遍历字符串,得到每一个字符
for (int x = chs.length - 1; x >= 0; x--) {
// 用新字符串把每一个字符拼接起来
result += chs[x];
}
return result;
}
}
5.33 字符串反转功能案例
import java.util.Scanner;
/*
* 把字符串反转
*/
public class StringBufferTest {
public static void main(String[] args) {
// 键盘录入数据
Scanner sc = new Scanner(System.in);
System.out.println("请输入数据:");
String s = sc.nextLine();
// 方式1:用String做拼接
String s1 = myReverse(s);
System.out.println("s1:" + s1);
// 方式2:用StringBuffer的reverse()功能
String s2 = myReverse2(s);
System.out.println("s2:" + s2);
sc.close();
}
// 用StringBuffer的reverse()功能
public static String myReverse2(String s) {
// StringBuffer sb = new StringBuffer();
// sb.append(s);
// StringBuffer sb = new StringBuffer(s);
// sb.reverse();
// return sb.toString();
// 简易版
return new StringBuffer(s).reverse().toString();
}
// 用String做拼接
public static String myReverse(String s) {
String result = "";
char[] chs = s.toCharArray();
for (int x = chs.length - 1; x >= 0; x--) {
// char ch = chs[x];
// result += ch;
result += chs[x];
}
return result;
}
}
go字符串反转思路
go字符串反转思路
- 利用双指针,一个指针从第一个元素开始,另一个指针从最后一个元素开始,相互交换.
- 循环移动这两个指针,到他们两个重合为止. 代码如下:
func reverseString(s []byte) []byte {
var i, j = 0, len(s) - 1
for i < j {
s[i], s[j] = s[j], s[i]
i++
j--
}
return s
}
上面的算法实现有几个好处: 是在原数组上进行的操作,没有额外的使用空间。 其它唯一用到的两个变量i和j,也是:O(1) 额外空间.
今天关于JS字符串反转和js字符串反转方法的讲解已经结束,谢谢您的阅读,如果想了解更多关于(C#) 字符串反转、5.23 字符串反转的案例、5.33 字符串反转功能案例、go字符串反转思路的相关知识,请在本站搜索。
本文标签: