我是MatLab的初学者,但我在java方面有很多经验。我正在循环遍历字符串,但我需要能够从java中执行一个简单的方法,如charAt()
。我已经看过堆栈溢出并试图谷歌任何等效的方法,但我一直没有解决方案。有什么想法吗?
答案 0 :(得分:3)
字符串只是Matlab中的数组。因此,您可以轻松创建自己的简单charAt
函数:
str = 'somestring';
charAt = @(str,idx)str(idx);
然后charAt(str,5)
将返回s
(此简单函数不输入验证)。但是,直接索引字符串通常更容易:str(5)
。
请注意,Java的charAt
使用从零开始的索引,而Matlab是基于零的索引。您可以使用idx+1
来模拟Java版本。
答案 1 :(得分:2)
如果你循环现有的字符串,它将是这样的:
mystring = 'example'; % The string
for ind = 1:length(mystring) % For loop from beginning to end of string
current_char = mystring(ind); % Character at the current index of the string
fprintf(current_char); % Prints the character to screen
end
完成for
循环后的最终打印输出在这种情况下会显示为example
。
在Matlab中,字符串向量的处理方式与任何其他向量一样,您可以使用v
访问向量v(ind)
的元素,其中ind
是您想要的元素的索引访问。这就是current_char = mystring(ind)
行中发生的事情。阅读本文以获取更多信息:http://www.mathworks.com/company/newsletters/articles/matrix-indexing-in-matlab.html
答案 2 :(得分:1)
如果您愿意,可以在matlab中使用java中的charAt
:
str = 'somestring';
strJava = java.lang.String(str); % convert to java string
strJava.charAt(5)
ans =
t