Java 如何比较两个char*变量
假设我们有以下方法(在c代码中): 我的问题是,如果文本和模式是Java 如何比较两个char*变量,java,c,algorithm,Java,C,Algorithm,假设我们有以下方法(在c代码中): 我的问题是,如果文本和模式是char,如何比较它们?这个方法就像一个子字符串问题,但我有点困惑,我能用char这样的代码来写吗? if(text[i]==pattern[i])? 我对java中的这个算法很感兴趣 如何在java中实现这一点 R = malloc((k+1) * sizeof *R); 请帮我用java翻译这段代码 我们有两个字符串文本? 比如“我喜欢电脑,它很重要” 还有拍拍字符串“电脑很好”? 有人能解释一下我们用什么来代替char吗?你
char
,如何比较它们?这个方法就像一个子字符串问题,但我有点困惑,我能用char这样的代码来写吗?
if(text[i]==pattern[i])
?
我对java中的这个算法很感兴趣
如何在java中实现这一点
R = malloc((k+1) * sizeof *R);
请帮我用java翻译这段代码
我们有两个字符串文本?
比如“我喜欢电脑,它很重要”
还有拍拍字符串“电脑很好”?
有人能解释一下我们用什么来代替char吗?你可能需要
strcmp()
或strpos()
你可能需要strcmp()
或strpos()
我不确定你到底在问什么,但如果你想在text
中找到pattern
,那么str
。或者,如果您只是想比较text
和pattern
,那么strcmp(text,pattern)
(请注意,当text
和pattern
相等时,它返回0
)
根据评论中的讨论进行编辑:如果您想询问如何在Java中实现单个字符的索引,请用(在Java中)text.charAt(i)
替换Ctext[i]
。在C语言中,字符串中的字符可以像数组一样直接编入索引,而在Java中,则需要在中调用正确的方法
编辑2:C代码const char*
可以在Java中替换为String
在C中,malloc用于分配内存;在这种情况下,它在数组
R
中为m+1
元素分配空间。因此,可以删除位*R
,并且R=malloc((m+1)*sizeof*R)代码>替换为boolean[]R=新的boolean[m+1]代码>。当将值赋给数组R
时,将1
替换为true
,将0
替换为false
,我不确定你到底在问什么,但如果你想在文本中找到模式,那么strstr(文本,模式)
。或者,如果您只是想比较text
和pattern
,那么strcmp(text,pattern)
(请注意,当text
和pattern
相等时,它返回0
)
根据评论中的讨论进行编辑:如果您想询问如何在Java中实现单个字符的索引,请用(在Java中)text.charAt(i)
替换Ctext[i]
。在C语言中,字符串中的字符可以像数组一样直接编入索引,而在Java中,则需要在中调用正确的方法
编辑2:C代码const char*
可以在Java中替换为String
在C中,malloc
用于分配内存;在这种情况下,它在数组R
中为m+1
元素分配空间。因此,可以删除位*R
,并且R=malloc((m+1)*sizeof*R)代码>替换为boolean[]R=新的boolean[m+1]代码>。将值赋给数组R
时,应使用strncmp()
替换1
的true
和false
替换0。语法类似于:
int strncmp( const char *str1, const char *str2, size_t count );
这是比较字符串的最好和更安全的方法,但您当然需要知道它们的长度,或者至少知道它们之间的最小长度。您应该使用strncmp()
。语法类似于:
int strncmp( const char *str1, const char *str2, size_t count );
这是比较字符串的最好和更安全的方法,但您当然需要知道它们的长度,或者至少知道它们之间的最小长度。我认为您对char
和char*
之间的区别感到困惑。在C语言中,没有内置的字符串类型。字符串表示为以null结尾的字符数组,这意味着字符串的最后一个字符必须是\0
,因此char
是单个字符,而char*
是指向字符数组的指针,即。E一串。这意味着如果(text[i]==pattern[i])
我想你对char
和char*
之间的区别感到困惑,那么说就很好了。在C语言中,没有内置的字符串类型。字符串表示为以null结尾的字符数组,这意味着字符串的最后一个字符必须是\0
,因此char
是单个字符,而char*
是指向字符数组的指针,即。E一串。这意味着如果(text[i]==pattern[i])
您可以尝试以下方法,那么说是非常好的:
- Google diff match补丁说它
有
- 而且,似乎,
- 最后,还有
似乎是一个名为的包,其标题为
高性能模式匹配
Java中的算法
您可以尝试以下方法:
- Google diff match补丁说它
有
- 而且,似乎,
- 最后,还有
似乎是一个名为的包,其标题为
高性能模式匹配
Java中的算法
很难理解你的问题,你能用字符来重新表述吗?子字符串问题,或者我们应该发现,如果文本几乎包含模式,文本和模式不是字符串,它们是图表,它们不是char
,它们是指向char
的指针,这就是C中的“字符串”(即以NUL字符结尾的字符数组)。在某种程度上呼应先前的陈述-如果提供了帮助您解决问题的答案,则接受该答案,并对帮助您解决问题的答案进行投票,即使这些答案没有直接解决您的问题,这被认为是一种良好的方式和良好的堆栈溢出形式