By GokiSoft.com|
19:33 12/04/2024|
Java Basic
Test - Tìm kiếm chuỗi trong chuỗi
Viết chương trình như sau
- Thực hiện nhập từ bàn phím 1 chuỗi và lưu vào biến : sourceStr
- Thực hiện nhập từ bàn phím 1 chuối tiếp theo và lưu vào biến : searchingStr
Yêu cầu: Tìm kiếm số lần xuất hiện chuỗi searchingStr trong chuỗi sourceStr và in ra vị trí xuất hiện của chuỗi đó trong sourceStr
Tags:
Phản hồi từ học viên
5
(Dựa trên đánh giá ngày hôm nay)
![le anh tuan [java1_online]](https://www.gravatar.com/avatar/0c79bbaaa43a903799a613fb8a163e0a.jpg?s=80&d=mm&r=g)
le anh tuan
2022-09-06 14:49:21
package array;
import java.util.Scanner;
/**
*
* @author Skynet
*/
public class Array {
public static void findString(){
Scanner scanner = new Scanner(System.in);
String sourceStr;
String searchingStr;
System.out.print("Nhap chuoi 1: ");
sourceStr = scanner.nextLine();
System.out.print("Nhap chuoi 2: ");
searchingStr = scanner.nextLine();
int count = 0;
for (int i = 0; i < sourceStr.length();) {
int index = sourceStr.indexOf(searchingStr, i);
if(index >= 0){
count++;
i = index + 1;
System.out.println("vi tri: "+index);
}else {
break;
}
}
System.out.println("So lan tim duoc: "+ count);
}
public static void main(String[] args) {
findString();
}
}
![Trần Văn Điệp [Teacher]](https://www.gravatar.com/avatar/ae8d66100c882095c429167b0fc6737f.jpg?s=80&d=mm&r=g)
Trần Văn Điệp
2020-03-30 12:32:27
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession7.string;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Diep.Tran
*/
public class Main {
public static void main(String[] args) {
Scanner scan = new Scanner(System.in);
String sourceStr;
String searchingStr;
System.out.println("Nhap chuoi nguon: ");
sourceStr = scan.nextLine();
System.out.println("Nhap chuoi tim kiem: ");
searchingStr = scan.nextLine();
//tim ra so lan xuat hien searchingStr trong sourceStr & index
//indexOf >= 0 -> index xuat hien cua searchingStr trong source
// int index = sourceStr.indexOf(searchingStr);
// System.out.println("index: " + index);
//Cach 1: ko toi uu => for tu dau toi cuoi
int count = 0;
List<Integer> list = new ArrayList<>();
for (int i = 0; i < sourceStr.length(); i++) {
int index = sourceStr.indexOf(searchingStr, i);
if(index >= 0 && !list.contains(index)) {
count++;
list.add(index);
System.out.println("index: " + index);
}
}
System.out.println("Count: " + count);
//Cach 2 : Toi uu source & performent
System.out.println("======= Cach 2 ============");
count = 0;
for (int i = 0; i < sourceStr.length();) {
int index = sourceStr.indexOf(searchingStr, i);
if(index >= 0) {
count++;
i = index + 1;
System.out.println("index: " + index);
} else {
break;
}
}
System.out.println("Count: " + count);
}
}
![hoangkhiem [C1907L]](https://www.gravatar.com/avatar/d3627ce786997fab24d1b790c91c6368.jpg?s=80&d=mm&r=g)
hoangkhiem
2020-03-30 10:33:55
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package BaiTap273;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* @author Admin
*/
public class Test {
public static void main(String[] args) {
Scanner nhap = new Scanner(System.in);
String sourceStr ;
String searchingStr ;
int dem = 0;
int demphu = 0;
int indexStr = 0;
List<Integer> VTC = new ArrayList<>();
System.out.print("Nhập chuỗi ban đầu : ");
sourceStr = nhap.nextLine();
System.out.print("Nhập chuỗi tìm kiếm: ");
searchingStr = nhap.nextLine();
do{
demphu++;
//Truyền vào chuỗi con và chỉ số bắt đầu
if (sourceStr.indexOf(searchingStr, indexStr) != -1) {
//
dem++;
indexStr = sourceStr.indexOf(searchingStr, indexStr);
//indexStr Cho kết quả trả về vào mảng
VTC.add(indexStr);
indexStr++;
}
//neu if không sảy ra dem không tăng và demphu không tăng và trả ra màn hình kết quả không tìm được
} while (dem == demphu);
System.out.println("KẾT QUẢ TÌM KIẾM");
if (dem > 0) {
System.out.println("Số lần chuỗi xuất hiện là: " + dem);
for (int i = 0; i < VTC.size(); i++) {
System.out.format("\nVị trí xuất hiện lần %d là: %d", i + 1, VTC.get(i));
}
} else {
System.out.println("Kết quả không tìm được");
}
}
}
![Nguyễn Anh Đức [community]](https://www.gravatar.com/avatar/180c9fc2a68850242fdb19aeb44d5c06.jpg?s=80&d=mm&r=g)
Nguyễn Anh Đức
2020-03-30 09:24:36
package test;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String sourceStr, searchingStr;
int count = 0;
int lastCount = 0;
int indexStr = 0;
List<Integer> countArr = new ArrayList<>();
System.out.print("Nhập chuỗi: ");
sourceStr = scanner.nextLine();
System.out.print("Nhập chuỗi tìm kiếm: ");
searchingStr = scanner.nextLine();
do{
lastCount++;
if(sourceStr.indexOf(searchingStr, indexStr) != -1){
count++;
indexStr = sourceStr.indexOf(searchingStr, indexStr);
countArr.add(indexStr);
indexStr++;
}
}while(count == lastCount);
if(count > 0){
System.out.println("Số lần chuỗi xuất hiện là: " + count);
for(int i = 0; i < countArr.size(); i++){
System.out.format("\nVị trí xuất hiện lần %d là: %d", i + 1, countArr.get(i));
}
}else{
System.out.println("Chuỗi searchingStr không xuất hiện lần nào trong trong chuỗi sourceStr");
}
}
}
![Nguyen Duc Viet [C1907L]](https://www.gravatar.com/avatar/565f27ecffbed3df91d80c107af48418.jpg?s=80&d=mm&r=g)
Nguyen Duc Viet
2020-03-28 17:22:41
public class Main {
public static void xuly(String pat, String txt)
{
int M = pat.length();
int N = txt.length();
int lps[] = new int[M];
int j = 0;
computeLPSArray(pat, M, lps);
int i = 0;
int count = 0;
while (i < N) {
if (pat.charAt(j) == txt.charAt(i)) {
j++;
i++;
}
if (j == M) {
count++;
j = lps[j - 1];
}
else if (i < N && pat.charAt(j) != txt.charAt(i)) {
if (j != 0)
j = lps[j - 1];
else
i = i + 1;
}
}
System.out.println("Tim thấy " + count + " lần");
}
public static void computeLPSArray(String pat, int M, int lps[])
{
int len = 0;
int i = 1;
lps[0] = 0;
while (i < M) {
if (pat.charAt(i) == pat.charAt(len)) {
len++;
lps[i] = len;
i++;
}
else
{
if (len != 0) {
len = lps[len - 1];
}
else
{
lps[i] = len;
i++;
}
}
}
}
public static void main(String args[])
{
String txt = "aaaaaaaaa";
String pat = "aaa";
xuly(pat, txt);
}
}
![Nguyễn Hoàng Anh [C1907L]](https://www.gravatar.com/avatar/5b7bb435cae0d0a0fd414f6fdd0adc87.jpg?s=80&d=mm&r=g)
Nguyễn Hoàng Anh
2020-03-28 03:40:25
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package testmarch27;
import java.util.*;
/**
*
* @author Redmibook 14
*/
public class NewClass {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
System.out.println("Input source String : ");
String srcstr = input.nextLine();
System.out.println("Input string to find : ");
String str = input.nextLine();
int c = srcstr.split(str).length;
int d = srcstr.indexOf(str);
System.out.println("String show " + c + " time");
int index = 0;
int count = 0;
if (srcstr.indexOf(str, index) == -1) {
System.out.println("String unidentify");
return;
}
System.out.print("String position in : ");
for (int i = 0; i < srcstr.length(); i++) {
if (srcstr.indexOf(str, index) != -1) {
index = srcstr.indexOf(str, index);
System.out.print(" " + index + " ");
index++;
count++;
}
}
System.out.println("String show " + count + " time");
}
}
![trung [C1907L]](https://www.gravatar.com/avatar/67c23432e4710f33dd14e580d41b0379.jpg?s=80&d=mm&r=g)
trung
2020-03-27 15:13:30
package Buoi7;
import java.util.Scanner;
/**
*
* @author prdox
*/
public class Main {
public static void main(String[] args) {
String sourceStr,searchingStr,tempStr;
Scanner input = new Scanner(System.in);
System.out.println("Nhap vao chuoi goc");
sourceStr = input.nextLine();
System.out.println("Nhap vao chuoi tim kiem");
searchingStr = input.nextLine();
String arr[] = sourceStr.split(searchingStr);
int pos = 0,i=0,count=0;
for (;i<arr.length-1;i++){
System.out.println(arr[i].length()+pos);
pos+=arr[i].length()+searchingStr.length();
count++;
}
if (pos+arr[i].length()<sourceStr.length()){
System.out.println(arr[i].length()+pos);
count++;
}
System.out.println(count);
}
}
![Vũ Việt Đức [C1907L]](https://www.gravatar.com/avatar/114894070fbd15fc0c29ffdeab37f4b5.jpg?s=80&d=mm&r=g)
Vũ Việt Đức
2020-03-27 14:42:00
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package lession6;
import java.util.ArrayList;
import java.util.List;
import java.util.Scanner;
/**
*
* @author ADMIN
*/
public class Main {
public static void main(String[] args){
Scanner scanner = new Scanner(System.in);
String sourceStr, searchingStr;
int count = 0;
int lastCount = 0;
int indexStr = 0;
List<Integer> countArr = new ArrayList<>();
System.out.print("Nhập chuỗi: ");
sourceStr = scanner.nextLine();
System.out.print("Nhập chuỗi tìm kiếm: ");
searchingStr = scanner.nextLine();
do{
lastCount++;
if(sourceStr.indexOf(searchingStr, indexStr) != -1){
count++;
indexStr = sourceStr.indexOf(searchingStr, indexStr);
countArr.add(indexStr);
indexStr++;
}
}while(count == lastCount);
System.out.println("=======================================================");
if(count > 0){
System.out.println("Số lần chuỗi xuất hiện là: " + count);
for(int i = 0; i < countArr.size(); i++){
System.out.format("\nVị trí xuất hiện lần %d là: %d", i + 1, countArr.get(i));
}
}else{
System.out.println("Chuỗi searchingStr không xuất hiện lần nào trong trong chuỗi sourceStr");
}
}
}
![trung [C1907L]](https://www.gravatar.com/avatar/67c23432e4710f33dd14e580d41b0379.jpg?s=80&d=mm&r=g)
trung
2020-03-27 14:27:22
/*
* To change this license header, choose License Headers in Project Properties.
* To change this template file, choose Tools | Templates
* and open the template in the editor.
*/
package Buoi7;
import java.util.Arrays;
import java.util.Scanner;
/**
*
* @author prdox
*/
public class Main {
public static void main(String[] args) {
String sourceStr,searchingStr,tempStr;
Scanner input = new Scanner(System.in);
System.out.println("Nhap vao chuoi goc");
sourceStr = input.nextLine();
System.out.println("Nhap vao chuoi tim kiem");
searchingStr = input.nextLine();
tempStr = sourceStr;
if (tempStr.indexOf(searchingStr)==-1){
System.out.println("Khong ton tai");
return;
}
int pos = -searchingStr.length();
int count=0;
while (tempStr.indexOf(searchingStr) != -1){
int posTemp = tempStr.indexOf(searchingStr);
tempStr = tempStr.substring(posTemp+searchingStr.length());
pos+=posTemp+searchingStr.length();
System.out.println(pos);
count+=1;
}
System.out.println(count);
}
}
![Ngô Quang Huy [C1907L]](https://www.gravatar.com/avatar/8e54dbf5994077ce599f49278164ae79.jpg?s=80&d=mm&r=g)
Ngô Quang Huy
2020-03-27 14:09:51
package March27;
import java.util.ArrayList;
import java.util.Scanner;
public class Main {
public static void main(String[] args) {
Scanner input = new Scanner(System.in);
ArrayList<Integer> arr = new ArrayList<>();
System.out.print("Nhap vao sourceStr: ");
String sourceStr = input.nextLine();
System.out.print("Nhap vao searchingStr: ");
String searchingStr = input.nextLine();
int a = searchingStr.length();
int b=sourceStr.length();
for(int i=0;i<b;i++){
if(sourceStr.charAt(i) == searchingStr.charAt(0) && (a+i)<=b){
int dk=1;
for(int j=i,k=0;j<a+i;j++,k++){
if( sourceStr.charAt(j) != searchingStr.charAt(k) ){
dk=0;
break;
}
}
if(dk==1){
arr.add(i);
}
}
}
if(!arr.isEmpty()){
System.out.print("Cac cap trung nhau o vi tri: ");
for(int i=0;i<arr.size();i++){
System.out.print(arr.get(i)+" ");
}
}else{
System.out.println("Ko co cap trung nhau");
}
}
}