Rumah > Java > Bagaimana untuk menyimpan token rentetan ke dalam tatasusunan

Bagaimana untuk menyimpan token rentetan ke dalam tatasusunan

王林
Lepaskan: 2024-02-09 13:30:15
ke hadapan
1338 orang telah melayarinya

Editor PHP Strawberry akan memperkenalkan kepada anda cara menyimpan tag rentetan ke dalam tatasusunan. Semasa pengaturcaraan, kita selalunya perlu memproses rentetan dan membahagikannya kepada berbilang token. Menyimpan teg ini dalam tatasusunan memudahkan kami memproses dan mengendalikannya. Artikel ini akan menerangkan secara terperinci cara menggunakan fungsi dan kaedah dalam PHP untuk melaksanakan fungsi ini untuk membantu pembaca memahami dan menggunakannya dengan lebih baik. Sama ada anda seorang pemula atau pembangun berpengalaman, anda boleh memperoleh pengetahuan berguna dan petua praktikal daripada artikel ini. Mari mulakan!

Kandungan soalan

Saya merujuk beberapa contoh untuk berjaya mengeluarkan setiap bahagian input pengguna. Tetapi ia hanya boleh ditarik balik sekali sahaja. Perlu ada 2 gelung untuk mengekstrak berbilang input dan menyimpan penanda dalam tatasusunan. Saya terperangkap pada tatasusunan, apakah yang perlu saya lakukan?

question:
write a program that accepts string tokens in the format of token1:token2:token3:token4 , where : is used as delimiter to separate tokens. there should be two functions, ingest and appearance.

ingest takes a string, and stores it in the collection.

appearance takes a string as input . it returns a normalized value
between 0 to 1,  where the value represents the percentage of
appearances of stored tokens which have input as the prefix.

state the space and time complexity of your solution.


Salin selepas log masuk

Hasil yang dijangkakan:

ingest('mcdonal:uk:employeea')
ingest('mcdonal:hk:employeea')
ingest('mcdonal:hk:employeeb')
ingest('mcdonal:hk:employeec')
ingest('fastfood')

appearance('mcdonal')
# > 0.8
appearance('mcdonal:hk')
# > 0.6
Salin selepas log masuk

Kod saya:

String input;
   
        
 // For user input
 Scanner sentense = new Scanner(System.in);
 input = sentense.nextLine();   
 String[] ingestWords = {};
       
             
 // Use ':' to seperate input
 StringTokenizer st = new StringTokenizer(input, ":");
 while(st.hasMoreTokens()) { 
   System.out.println(st.nextToken());
 }
Salin selepas log masuk

Penyelesaian

Saya cadangkan anda selesaikan masalah anda dalam dua langkah.

Pertama, bahagian pengingesan: anda perlu menerima perkataan yang dimasukkan oleh pengguna dan menyimpan setiap perkataan dalam arraylist<string> dan bukannya tatasusunan saiz tetap, kerana anda tidak tahu terlebih dahulu berapa banyak input yang akan anda perolehi.

Kod sampel ditunjukkan di bawah.

public static void main(string[] args) {
    string input;
    list<string> ingestwords = new arraylist<>();

    scanner sentence = new scanner(system.in);
        
    while (sentence.hasnext()) {
        input = sentence.next();
            
        if (input.equals("exit")) { // to stop receiving input
            break;
        }
            
        ingestwords.add(input);         
    }
    sentence.close();
}
Salin selepas log masuk

Kedua, bahagian penampilan: diberi rentetan, anda perlu mengulangi senarai perkataan daripada bahagian pengingesan dan semak perkataan yang bermula dengan rentetan yang diberikan.

Sebagai contoh, anda boleh membuat fungsi pembantu seperti ini.

void hasPrefix(String word, String str) {
    return word.startsWith(str);
}
Salin selepas log masuk

Gunakan fungsi ini pada bilangan perkataan yang diawali dengan ingestwords 中的每个单词,将为您提供以 str. Dan anda boleh mengetahui peratusan kejadian daripada itu.

Atas ialah kandungan terperinci Bagaimana untuk menyimpan token rentetan ke dalam tatasusunan. Untuk maklumat lanjut, sila ikut artikel berkaitan lain di laman web China PHP!

sumber:stackoverflow.com
Kenyataan Laman Web ini
Kandungan artikel ini disumbangkan secara sukarela oleh netizen, dan hak cipta adalah milik pengarang asal. Laman web ini tidak memikul tanggungjawab undang-undang yang sepadan. Jika anda menemui sebarang kandungan yang disyaki plagiarisme atau pelanggaran, sila hubungi admin@php.cn
Tutorial Popular
Lagi>
Muat turun terkini
Lagi>
kesan web
Kod sumber laman web
Bahan laman web
Templat hujung hadapan