如果找到字符,请跳过字符串的其余部分

时间:2013-02-21 07:31:13

标签: java string trim

嗨我有以下字符串作为服务器的输出。

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InNjb3BlOmNsaWVudDppbmNvbWluZz9jbGllbnROYW1lPWplbm55IHNjb3BlOmNsaWVudDpvdXRnb2luZz9hcHBTaWQ9QVA2YmI2NDI1ZmE3MTU3MzdmYjFmYTllMjI1MDk4NjdlMSZhcHBQYXJhbXM9JmNsaWVudE5hbWU9amVubnkiLCJpc3MiOiJBQzI4YmNjYzc0NzQ4ZDAzNzRmNzg5ZjgyN2U0OGMzODNjIiwiZXhwIjoxMzYxNDM0ODY1fQ.q17gvt8ItDmximK2rpS5bHwtsfbk3l-suSx2jXju3Wk
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->

我想跳过字符串的html部分,即我只想要

eyJ0eXAiOiJKV1QiLCJhbGciOiJIUzI1NiJ9.eyJzY29wZSI6InNjb3BlOmNsaWVudDppbmNvbWluZz9jbGllbnROYW1lPWplbm55IHNjb3BlOmNsaWVudDpvdXRnb2luZz9hcHBTaWQ9QVA2YmI2NDI1ZmE3MTU3MzdmYjFmYTllMjI1MDk4NjdlMSZhcHBQYXJhbXM9JmNsaWVudE5hbWU9amVubnkiLCJpc3MiOiJBQzI4YmNjYzc0NzQ4ZDAzNzRmNzg5ZjgyN2U0OGMzODNjIiwiZXhwIjoxMzYxNDM0ODY1fQ.q17gvt8ItDmximK2rpS5bHwtsfbk3l-suSx2jXju3Wk

我想从字符串

中删除以下内容
<!-- Hosting24 Analytics Code -->
<script type="text/javascript" src="http://stats.hosting24.com/count.php"></script>
<!-- End Of Analytics Code -->

我应该使用什么方法来检测<!--并跳过字符串的其余部分?

3 个答案:

答案 0 :(得分:4)

如果您尝试删除的分析评论始终位于字符串的末尾,则可以执行以下操作:

String s = "...";
int pos = s.indexOf("<!-- Hosting24 Analytics Code -->");
if (pos >= 0) { s = s.substring(0, pos); }
// continue working with s

如果它位于String中间的某个位置,您可能需要额外的indexOf()调用来查找要删除的内容的开头和结尾。请注意,当找不到子字符串时,此方法返回-1。

s.substring(a, b);

将返回s中从位置a开始并在位置b-1结束的字符的子序列(如果a == b则结果字符串为空)。

答案 1 :(得分:0)

String s = "inputString";

StringBuilder sb = new StringBuilder();
char ch;
boolean check=false;
for(int i=0; i<s.length(); i++)
{
    ch = s.charAt(i);
    if(ch == '<')
    {
        check = false;
    }
    if(ch == '>')
    {
        check = true;
        ch = s.charAt(i);
    }
    if(check)
        sb.append(ch);
}

答案 2 :(得分:0)

试试这个:

str = str.replaceAll("<.*", "");