"JAVA期末考试:字符串包含子串位置判断练习"

需积分: 10 0 下载量 130 浏览量 更新于2024-01-03 收藏 42KB DOCX 举报
JAVA期末考试试题练习要求学生能够编写一个程序,输入一个给定的字符串和一个子串,然后判断该字符串中是否包含这个子串,如果包含的话,需要找出子串在字符串中的所有出现位置。考试题目的要求是从键盘输入两个字符串,第一个是给定的字符串,第二个是子串。例如,输入"abcd23abc34bcd"和"bc",则程序应该输出1、7、11,因为子串"bc"在给定字符串中分别出现在位置1、7、11。 这个问题的难度被评定为一般。下面是一个示例: 输入示例:1234efaiseeftt 和 ef 输出示例:4 10 这个问题的解决方案需要使用Java编程语言。一个可能的解决方案如下: ```java import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); System.out.println("请输入第一个字符串:"); String str1 = sc.next(); System.out.println("请输入第二个字符串:"); String str2 = sc.next(); int j = 0; while (true) { int i = str1.indexOf(str2, j); if (i == -1) { break; } System.out.print(i + " "); j = i + 1; } } } ``` 以上是一种可能的解决方案,它使用了Scanner类来从键盘获取输入的两个字符串。然后,它使用indexOf方法来找出子串在给定字符串中的位置,并输出这些位置。这个解决方案可以成功地解决考试题目的要求。 在这个解决方案中,我们使用了一个while循环来不断地查找子串在字符串中的位置,直到找不到为止。这个解决方案利用了字符串的indexOf方法来找到子串在字符串中的位置。当找到子串时,我们将其位置输出,并将下一次查找的起始位置设为之前找到的位置+1。这样,就可以逐个输出子串在字符串中的所有位置。 总的来说,这个JAVA期末考试试题练习是一道较为简单的问题,但能考查学生对字符串处理和循环控制的基本掌握程度。学生需要编写一个程序来实现输入两个字符串,然后判断第一个字符串中是否包含第二个字符串,并输出所有出现的位置。这道题目对于学生的编程能力和字符串处理能力提出一定的要求,考察了学生对于字符串查找、循环控制和输入输出的掌握程度。希望同学们能够通过这个练习来加深对字符串处理和循环控制的理解,提高自己的编程能力。