如何在不使用任何内置方法的情况下遍历java中的String?

时间:2013-11-10 18:26:27

标签: java string

对不明白的问题感到抱歉。我想对字符数组执行所有操作(例如检索字符数组中的每个字符,查找字之间的空格,查找数组的结尾等)。在C和C ++我可以使用循环语句遍历整个数组(逐个字符)。但我无法在java中执行此操作。要做到这一点,我被迫使用toCharArray()方法或charAt()方法。此处有任何其他方法逻辑?更具体的是有没有办法将String转换为字符数组,而不使用任何( ANY !!!! )内置方法(ieAPI)?

3 个答案:

答案 0 :(得分:3)

如果唯一的限制是不使用charAt(),请使用toCharArray()

String hello = "Hello dummy, why can't I use charAt";

char[] letters = hello.toCharArray();

// traverse array

编辑:查找空格

if (hello[i] == ' ')

编辑:遍历字符串

character array(such as retrieving each character in character array,finding spaces between words,finding end of array,etc

// traverses through every character in String
for (int i = o; i <hello.length(); i++){
    char c = hello.charAt(i);  
    System.out.println(c); // prints out every char of string

    if (Charcter.isWhiteSpace(hello.charAt(i)){ // checks if char is white space
        // do something
    }

    if (c == ' ') {  // checks if char is whitespace
        // do something
    }
}

// last letter
char c = hello.charAt(hello.length() - 1);

您应该查看String java文档以查看其所有可用方法。甚至可以查看Character类javadocs

答案 1 :(得分:0)

您可以使用getBytes()toCharArray()

获取字符串的原始字符
String string = "lorem ipsum";
byte[] bytes = string.getBytes();

for(int i = 0; i < bytes.length; i++){
    if(bytes[i] == 0x20){ // ASCII code of space
        System.out.println("Found space at index "+i);
    }
}

答案 2 :(得分:0)

你的问题很模糊。我假设你想要在不使用charAt()方法的情况下找到字符串的最后一个字符。

    String example = "I like Java";
    int size = example.length(); //gives the length of the string

    //cuts the string for the last char
    String lastChar = example.subString((size-2), (size-1));