在Java中迭代字符串中的字符,而不使用任何库函数

在Java中迭代字符串中的字符,而不使用任何库函数,java,string,iteration,Java,String,Iteration,我想找出给定字符串(a)中最后一个单词的长度。单词定义为没有空格(“”)的字符序列。条件是在执行此操作时不使用任何库函数。我知道它在C++中是可能的。也可以用Java实现吗? 我使用了以下方法: for(char c:a.toCharArray()) //this is not correct though. I need one without using an inbuilt method(considering its possible) 是否有不使用库函数的方法 编辑: 这里是C++的

我想找出给定字符串(a)中最后一个单词的长度。单词定义为没有空格(“”)的字符序列。条件是在执行此操作时不使用任何库函数。我知道它在C++中是可能的。也可以用Java实现吗? 我使用了以下方法:

for(char c:a.toCharArray()) //this is not correct though. I need one without using an inbuilt method(considering its possible)
是否有不使用库函数的方法

编辑:

这里是C++的解决方案。注意,它在任何时候都不使用库函数,甚至不使用strlen()

class Solution {
public:
    int lengthOfLastWord(const string &s) {
        int len = 0;
        while (*s) {
            if (*s != ' ') {
                len++;
                s++;
                continue;
            }
            s++;
            if (*s && *s != ' ') len = 0;
        }
        return len;

    }};
解决方案1:

for (int i = 0, n = a.length(); i < n; i++) {
    char c = a.charAt(i);
}
for(int i=0,n=a.length();i
解决方案2:

char[] chars = a.toCharArray();
for (int i = 0, n = chars.length; i < n; i++) {
    char c = chars[i];
}
char[]chars=a.toCharArray();
for(int i=0,n=chars.length;i
以下是一种方法:

String msg = "Hello everybody I'm Here";
String lastWord = msg.split(" ")[msg.split(" ").length-1];

System.out.println(lastWord);// "Here"

<>你的C++代码无效:你不能在引用上做指针运算。您可以将方法签名类型更改为:

int lengthOfLastWord(const char* s) {
然后它进行编译并看起来可以正常工作(前提是数组以null结尾)

因此,Java中大致类似的代码将使用以零结尾的
字节[]

int longestWord(byte[] cs) {
  int len = 0;
  for (int i = 0; cs[i] != 0; i++) {
    // ...
  }
  return len;
}

你所说的库函数是什么意思?如果您可以使用
tocharray()
,您可以使用
String.split()
?您所说的“不使用任何库函数”是什么意思?如果您希望能够找到字符串中的最后一个空格,您必须使用某种库函数才能访问字符串的各个字符。有什么内置方法吗?因为要操作字符串,必须使用字符串方法。唯一的解决方法是欺骗并使用反射来访问字符串的私有内部状态。但这将使用除String之外的许多其他类的方法。这个练习毫无意义。指针在java中不是一个有效的概念。不像C++,至少是的。你是对的。我并没有关注C++代码。它是在我正在解决问题的网站上给出的。