我想知道return str.substring(1,4).equals("bad");
中else if(len>=4)
正在做什么。我认为if语句是一个保护条款,但我不是100%。我可以解释一下这里到底发生了什么吗?如何读取输出“false”?
给定一个字符串,如果在字符串中从索引0或1开始出现“bad”,则返回true,例如“badxxx”或“xbadxx”而不是“xxbadxx”。字符串可以是任意长度,包括0.注意:使用.equals()来比较2个字符串。
hasBad(“badxx”)→true
hasBad(“xbadxx”)→true
hasBad(“xxbadxx”)→false
public boolean hasBad(String str)
{
int len = str.length();
if(len == 3 && str.equals("bad"))
return true;
else if(len >= 4)
{
if(str.substring(0, 3).equals("bad"))
return true;
return str.substring(1, 4).equals("bad");
}
else
return false;
}
答案 0 :(得分:2)
if(str.substring(0, 3).equals("bad"))
是容易的部分。 “如果”坏“是String
的开头,则返回true。
return str.substring(1, 4).equals("bad")
实质上意味着,“如果在第一个字符后发生'坏'则返回true,否则返回false”。这基本上是
if(str.substring(1, 4).equals("bad")) return true;
else return false;
因为if
已经计算了一个布尔值(if里面会出现一个布尔值),没有理由告诉它返回“如果为true则为true,否则为false”,你可以返回布尔值直接。
答案 1 :(得分:0)
您也可以尝试其他方式,例如下面的方式
package com.hmkcode;
import java.io.FileNotFoundException;
import java.io.FileOutputStream;
import java.io.IOException;
import com.itextpdf.html2pdf.HtmlConverter;
public class App
{
public static final String HTML = "<h1>Hello</h1>"
+ "<p>This was created using iText</p>"
+ "<a href='hmkcode.com'>hmkcode.com</a>";
public static void main( String[] args ) throws FileNotFoundException, IOException {
HtmlConverter.convertToPdf(HTML, new FileOutputStream("string-to-pdf.pdf"));
System.out.println( "PDF Created!" );
}
}