⭐ 欢迎来到虫虫下载站! | 📦 资源下载 📁 资源专辑 ℹ️ 关于我们
⭐ 虫虫下载站

📄 ex7_3.java

📁 判断三角形
💻 JAVA
字号:
//7.3 检测字串
import javax.swing.JOptionPane;
public class Ex7_3{
  public static void main (String[] args) {
    String str1=JOptionPane.showInputDialog(null, "请输入第一个字符串:",
      " Ex7_3 ", JOptionPane.QUESTION_MESSAGE);
    String str2=JOptionPane.showInputDialog(null, "请输入第二个字符串:",
      " Ex7_3 ", JOptionPane.QUESTION_MESSAGE);
    if(IsSubStr(str1,str2))
    	System.out.println(str1+"是"+str2+"的字串");
    else
    	System.out.println(str1+"不是"+str2+"的字串");
  }
  public static boolean IsSubStr(String str1,String str2){//利用KMP算法
     int[] fail=new int[str1.length()];//fail[]存储字符串下次比较时的下标位置,只需通过模式串即str1得到
     fail[0]=-1;
     for(int i=1;i<str1.length();i++){//计算fail[]的函数
        int j=fail[i-1];
        while(str1.charAt(i)!=str1.charAt(j+1)&&j>=0) j=fail[j];
        if(str1.charAt(i)==str1.charAt(j+1)) fail[i]=j+1;
        else fail[i]=-1;
     }
     int i=0,j=0;
     while(i<str1.length()&&j<str2.length())//字符串比较
     	if(str1.charAt(i)==str2.charAt(j)){
     	   i++;
     	   j++;
     	}
     	else if(i==0) j++;
     	else i=fail[i-1]+1;
     if(i<str1.length())
        return false;
     else
     	return true;
  }
}

⌨️ 快捷键说明

复制代码 Ctrl + C
搜索代码 Ctrl + F
全屏模式 F11
切换主题 Ctrl + Shift + D
显示快捷键 ?
增大字号 Ctrl + =
减小字号 Ctrl + -