字符串逆序输出

来源:互联网 发布:数据对接和系统过渡 编辑:程序博客网 时间:2024/05/17 00:14

转自leetcode  344,

public class Solution {    public String reverseString(String s) {        return  new StringBuilder(s).reverse().toString();    }}

String 字符串常量
StringBuffer 字符串变量(线程安全)
StringBuilder 字符串变量(非线程安全)

在 StringBuilder 上的主要操作是 append 和 insert 方法。


每个方法都能有效地将给定的数据转换成字符串,然后将该字符串的字符添加或插入到字符串生成器中。

append 方法始终将这些字符添加到生成器的末端;而 insert 方法则在指定的点添加字符。

例如,如果 z 引用一个当前内容为“start”的字符串生成器对象,则该方法调用 z.append("le") 将使字符串生成器包含“startle”,而 z.insert(4, "le") 将更改字符串生成器,使之包含“starlet”。

通常,如果 n引用 StringBuilder 的实例(StringBuilder n = new StringBuilder();),则 n.append(x) 和 n.insert(n.length(), x) 具有相同的效果。

每个字符串生成器都有一定的容量。只要字符串生成器所包含的字符序列的长度没有超出此容量,就无需分配新的内部缓冲区。

如果内部缓冲区溢出,则此容量自动增大。 将StringBuilder的实例用于多个线程是不安全的。如果需要这样的同步,则建议使用StringBuffer。

StringBuilder类可以用于在无需创建一个新的字符串对象情况下修改字符串。StringBuilder不是线程安全的,而StringBuffer是线程安全的。但StringBuilder在单线程中的性能比StringBuffer高。

(用于Java和C#中)


一些string函数:(s为输入的字符串)

1、      char[] word = s.toCharArray();
        return new String(word);(Java)
2、             byte[] bytes = s.getBytes();      //typedef unsigned char BYTE;
        return new String(bytes);(Java)
3、             String leftStr = s.substring(0, length / 2);
(Java)
4、
        reverse(s.begin(), s.end());
5、
            swap(s[i++], s[j--]); 
6、
        char *str =(char*)malloc(strlen(s)+1);
7、
s.length()等价于s.size()
sizeof(s)是求占用内存大小
strlen(s)

8、
c++里面可以用string里面的c_str可以把string转换成c的字符数组,返回类型为void *
9、 字符串和字符数组转化
点击打开链接

10、
            string vowels = "aeiouAEIOU";            while(i < j) {                while(vowels.find(s[i]) == string::npos && i < j) ++i;
//在vowel中进行查找匹配,判断s[i]是否为元音。如果有,返回在vowel中的下标位置;没有,返回string::npos


0 0
原创粉丝点击