如何在不使用charAt()的情况下反转字符串

时间:2014-09-18 09:17:57

标签: java string

如何在不使用内置函数的情况下反转字符串甚至不是charAt()? 我在接受采访时被问到这个问题并且无法找到解决方案。

我确定他并不意味着使用字符串缓冲区,他特别说没有内置函数,甚至不是CharAt()。

语言是java

3 个答案:

答案 0 :(得分:1)

  

如何在不使用内置函数的情况下反转字符串

使用算法反向?我在这里假设c ++。

#include <iostream>
#include <string>
#include <algorithm>
using namespace std;


int main() {
    string s  = "Hallo";

    reverse( s.begin(), s.end() );
    cout << s << endl;
    return 0;
}

打印“ollaH”

如果你的语言是JavaScript,它似乎也有一个反向的方法...

  

OP表示他正在使用java,在这种情况下this item会保留您正在寻找的答案:

答案 1 :(得分:1)

你可以通过字节数组反转String。

请注意,如果您使用其他角色, 你应该将char-set指定为getBytes(String)的参数。

这是我的解决方案&gt;&gt;

public class Main {
    public static void main(String[] args) {
        String string = "String";
        byte[] byteArr = string.getBytes();
        byte[] secondByteArr = new byte[byteArr.length];

        for(int i = 0; i < byteArr.length ; i++){
            secondByteArr[(byteArr.length - 1) - i] = byteArr[i];
        }

        System.out.println(new String(secondByteArr));
    }
}
祝你好运:D

答案 2 :(得分:0)

我猜你可以将它转换为CharArray并从上到下转换为循环

String s = "abcdef";
char c[] = s.toCharArray();

for( int i = c.length -1; i>=0; i--)
    System.out.print(c[i]);