By GokiSoft.com| 15:31 14/06/2023|
Java Basic

Test - Tìm kiếm chuỗi trong chuỗi BT1109

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

Liên kết rút gọn:

https://gokisoft.com/1109

Bình luận

avatar
le anh tuan [java1_online]
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();
    }  
}


avatar
Trần Văn Điệp [Teacher]
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);
    }
}


avatar
hoangkhiem [C1907L]
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");
        }
    }
}


avatar
Nguyễn Anh Đức [community]
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");

        }

    }

}



avatar
Nguyen Duc Viet [C1907L]
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); 
    } 
} 


avatar
Nguyễn Hoàng Anh [C1907L]
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");
    }
}


avatar
trung [C1907L]
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);
        
    }
}


avatar
Vũ Việt Đức [C1907L]
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");
        }
    }
}


avatar
trung [C1907L]
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);
    }
}


avatar
Ngô Quang Huy [C1907L]
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");
        }
    }
}