在java开发中遇到string index out of range:4 这是啥原因

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了在java开发中遇到string index out of range:4 这是啥原因相关的知识,希望对你有一定的参考价值。

在java开发中遇到string index out of range:4 的原因一般是数组下标越界。学习java开发推荐千锋教育!

在java开发中遇到的常见的难点还有java.lang.nullpointerexception,这个异常大家肯定都经常遇到,异常的解释是"程序遇上了空指针",简单地说就是调用了未经初始化的对象或者是不存在的对象,这个错误经常出现在创建图片,调用数组这些操作中,比如图片未经初始化,或者图片创建时的路径错误等等。对数组操作中出现空指针,很多情况下是一些刚开始学习编程的朋友常犯的错误,即把数组的初始化和数组元素的初始化混淆起来了。数组的初始化是对数组分配需要的空间,而初始化后的数组,其中的元素并没有实例化,依然是空的,所以还需要对每个元素都进行初始化(如果要调用的话)

想要了解更多有关java开发的相关信息,推荐咨询千锋教育。千锋励精图治,不改教育初心。十一年来,千锋以政策为引导,不断完善国内特色现代职业教育体系建设,充分发挥教研师资队伍使命,构建品质教育,加大创新型人才培养力度,为经济发展提供智力人才和智力支撑,成为新时期职业教育发展的新方向,在同行业中有很高的美誉度。实力强大,口碑良好,值得每位学员信赖和选择!
参考技术A 字符串越界 lastIndexOf 方法
返回 String 对象中子字符串最后出现的位置。

strObj.lastIndexOf(substring[, startindex])
lastIndexOf 方法返回一个整数值,指出 String 对象内子字符串的开始位置。如果没有找到子字符串,则返回 -1。

如果 startindex 是负数,则 startindex 被当作零。如果它比最大字符位置索引还大,则它被当作最大的可能索引。

从右向左执行查找。否则,该方法和 indexOf 相同。

下面的示例说明了 lastIndexOf 方法的用法:

function lastIndexDemo(str2)

var str1 = "BABEBIBOBUBABEBIBOBU"
var s = str1.lastIndexOf(str2);
return(s);
参考技术B 数组下标越界

在 PHP 中使用 IMAP 的证书错误

【中文标题】在 PHP 中使用 IMAP 的证书错误【英文标题】:Certificate error using IMAP in PHP 【发布时间】:2011-12-15 01:23:46 【问题描述】:

我用尽了所有可能的主机名组合,但我总是遇到证书错误或 IMAP 连接中断。

imap.froiden.com 的证书失败:服务器名称不匹配 证书:/O=imap.mailhostbox.com/OU=转到 https://www.thawte.com/repository/index.html/OU=ThawteSSL123 证书/OU=域验证/CN=imap.mailhostbox.com

我使用的主机名是'imap.froiden.comINBOX'。有解决此错误的建议吗?

【问题讨论】:

证书是为 imap.mailhostbox.com 颁发的 - 对于 SSL 连接,请求的主机名和颁发证书的主机名必须匹配,否则您将收到这些警告/错误。主机名不匹配(在恶意设置中)意味着有人试图欺骗/伪造某些东西。 @MarcB 好吧,我尝试了所有组合,但它不像 imap.froiden.com:993/imap/ssl 那样工作。我需要在主机上配置什么吗? 您应该使用 imap.mailboxhost.com:993/imap/ssl,假设证书是正确的并且它确实是从名为 imap.mailhostbox.com 的机器提供的 @MarcB:导致超时。 【参考方案1】:

证书完全无效。您应该连接到imap.mailboxhost.com:993/imap/ssl 或联系邮件服务器的管理员并索取有效证书。

请注意,虽然您可以使用连接字符串 imap.froiden.com:993/imap/ssl/novalidate-cert 跳过证书验证,但您不应该这样做,因为该标志将允许任何 Man In The Middle 攻击者阅读和撰写您的电子邮件。

【讨论】:

谢谢,imap.example.com/ssl/novalidate-certINBOX 确实有效 谢谢example.com:993/imap/ssl/novalidate-cert收件箱确实为我工作。我真的很开心。我想拥抱你。【参考方案2】:

我可以确认这运行良好:

$mb = imap_open("phoenix.srv.spletnasoba.si:993/imap/ssl/novalidate-cert","username", "password" );

$emails = array();
$messageCount = imap_num_msg($mb);
for( $MID = 1; $MID <= $messageCount; $MID++ )


    $EmailHeaders = imap_headerinfo( $mb, $MID );
    foreach($EmailHeaders as $key => $value) 
        if (validateEmail($value)) 
            $emails[$value] = $key;
            echo $value."\n";
        
    




function validateEmail($email) 
    return filter_var($email, FILTER_VALIDATE_EMAIL);

【讨论】:

【参考方案3】:

如果您使用的是 gmail,请确保在您的 google 帐户的帐户设置页面中打开“允许访问不太安全的应用程序”,以便您能够使用 imap_open() 访问您的 gmail 帐户

【讨论】:

以上是关于在java开发中遇到string index out of range:4 这是啥原因的主要内容,如果未能解决你的问题,请参考以下文章

在 PHP 中使用 IMAP 的证书错误

JAVA移动MS ADUser到指定OU

JavaJava_16 控制循环结构BreakContinueReturn

101Java中String类之判断是否由数字组成

关于java中String.getBytes()问题

java中String类型的如何转为byte[]