首页 > 图灵资讯 > 技术篇>正文
步骤 描述 输入目标字符串和匹配字符串2使用匹配算法匹配字符串3输出匹配结果2. 代码实现2.1 输入目标字符串和匹配字符串
字符串匹配Java
2023-12-21 09:23:31
Java1字符串. 流程
字符串匹配时,可按以下步骤操作:
在Java中,Scanner可以用来获取用户的输入。首先,Scanner类需要导入:
import java.util.Scanner;
然后,Scanner类对象可以用来获取用户的输入:
Scanner scanner = new Scanner(System.in);System.out.print("请输入目标字符串:");String target = scanner.nextLine();System.out.print("输入待匹配字符串:");String pattern = scanner.nextLine();
在上述代码中,首先创建了Scanner对象scanner
,然后单独使用nextLine()
该方法获取用户输入的目标字符串和待匹配字符串,并存储在中target
和pattern
变量中。
Java提供了多种字符串匹配算法,如暴力匹配算法、KMP算法等。以下是暴力匹配算法为例。
暴力匹配算法的基本思想是将目标字符串的第一个字符与待匹配字符串进行比较。如果不匹配,则将目标字符串的指针向后移动,然后进行比较,直到找到匹配的子串或目标字符串。
以下是使用暴力匹配算法来匹配字符串的代码:
boolean isMatched = false;for (int i = 0; i <= target.length() - pattern.length(); i++) { int j; for (j = 0; j < pattern.length(); j++) { if (target.charAt(i + j) != pattern.charAt(j)) { break; } } if (j == pattern.length()) { isMatched = true; break; }}
在上述代码中,外部循环控制目标字符串的每个字符,内部循环用于比较目标字符串和匹配字符串的每个字符。如果不匹配,则退出内部循环,并向后移动目标字符串的指针。如果内部循环完成j
值等于待匹配字符串的长度,表示找到了匹配的子串,此时将isMatched
标记为true
,并跳出外循环。
可根据匹配结果输出相应的提示信息。修改上述代码,添加输出匹配结果的代码:
if (isMatched) { System.out.println("匹配成功!");} else { System.out.println("匹配失败!");}
根据上述代码isMatched
标记值输出相应的提示信息,提示用户匹配结果。
以下是完整的示例代码:
import java.util.Scanner;public class StringMatching { public static void main(String[] args) { Scanner scanner = new Scanner(System.in); System.out.print("请输入目标字符串:"); String target = scanner.nextLine(); System.out.print("输入待匹配字符串:"); String pattern = scanner.nextLine(); boolean isMatched = false; for (int i = 0; i <= target.length() - pattern.length(); i++) { int j; for (j = 0; j < pattern.length(); j++) { if (target.charAt(i + j) != pattern.charAt(j)) { break; } } if (j == pattern.length()) { isMatched = true; break; } } if (isMatched) { System.out.println("匹配成功!"); } else { System.out.println("匹配失败!"); } else { System.out.println("匹配失败!"); } }}
4. 关系图以下是字符串与Java相匹配的关系图:
erDiagram Developer ||.. Scanner : 使用 StringMatching ||.. Developer : 使用 StringMatching --> Scanner : 创建对象
上述关系图表示Developer
使用了Scanner
类获取用户输入,StringMatching
是一个Developer
。
以下是与Java相匹配的字符串