คำถามติดแท็ก strings

"สตริง" คือลำดับของอักขระโดยทั่วไปแสดงถึงหน่วยของข้อความที่มนุษย์อ่านได้ คำถามในหัวข้อนี้จะจัดการกับสตริงการประมวลผลในโปรแกรมและวิธีการที่ภาษาและสภาพแวดล้อมต่างๆกำหนดและจัดการสตริง

5
ทำไม% s ถึงดีกว่า + สำหรับการต่อข้อมูล
ฉันเข้าใจว่าเราควรใช้%sเพื่อเชื่อมสตริงเข้าด้วยกันแทนที่จะเป็น+Python ฉันสามารถทำสิ่งใดก็ได้: hello = "hello" world = "world" print hello + " " + world print "%s %s" % (hello, world) print "{} {}".format(hello, world) print ' '.join([hello, world]) แต่ทำไมฉันถึงควรใช้สิ่งอื่นนอกเหนือจาก+? การเขียนเรียงต่อกันด้วยวิธีง่าย+กว่าทำได้เร็วกว่า จากนั้นหากคุณดูที่สตริงการจัดรูปแบบคุณจะระบุประเภทเช่น%sและ%dและ ฉันเข้าใจว่ามันจะดีกว่าหากจะระบุประเภทให้ชัดเจน แต่ฉันอ่านแล้วว่า+ควรหลีกเลี่ยงการใช้การต่อข้อมูลแบบเรียงต่อกันแม้ว่าจะพิมพ์ง่ายกว่าก็ตาม มีเหตุผลที่ชัดเจนที่ควรรวมสตริงเข้าด้วยกันด้วยวิธีใดวิธีหนึ่งเหล่านี้หรือไม่?
88 python  strings 

11
ทำไม String ถึงไม่เปลี่ยนรูปใน Java?
ฉันไม่เข้าใจเหตุผลของมัน ฉันมักจะใช้คลาส String เหมือนนักพัฒนาอื่น ๆ แต่เมื่อฉันแก้ไขค่าของมันอินสแตนซ์ใหม่ของ String ที่สร้างขึ้น สิ่งที่อาจเป็นสาเหตุของการไม่เปลี่ยนรูปแบบสำหรับคลาส String ใน Java? ฉันรู้ว่ามีทางเลือกบางอย่างเช่น StringBuffer หรือ StringBuilder มันเป็นเพียงความอยากรู้

12
SQL: สตริงว่างกับค่า NULL
ฉันรู้ว่าหัวข้อนี้ขัดแย้งกันเล็กน้อยและมีบทความ / ความคิดเห็นมากมายลอยอยู่ในอินเทอร์เน็ต โชคไม่ดีที่พวกเขาส่วนใหญ่คิดว่าบุคคลนั้นไม่รู้ว่าความแตกต่างระหว่าง NULL และสตริงว่างคืออะไร ดังนั้นพวกเขาจึงบอกเล่าเรื่องราวเกี่ยวกับผลลัพธ์ที่น่าประหลาดใจด้วยการรวม / สรุปรวมและโดยทั่วไปจะทำบทเรียน SQL ขั้นสูงเพิ่มเติม โดยการทำเช่นนี้พวกเขาพลาดจุดทั้งหมดและไม่มีประโยชน์สำหรับฉัน ดังนั้นหวังว่าคำถามนี้และคำตอบทั้งหมดจะย้ายไปข้างหน้าเล็กน้อย สมมติว่าฉันมีตารางที่มีข้อมูลส่วนบุคคล (ชื่อ, วันเกิด, ฯลฯ ) โดยที่หนึ่งในคอลัมน์คือที่อยู่อีเมลที่มีประเภท varchar เราคิดว่าด้วยเหตุผลบางคนบางคนอาจไม่ต้องการให้ที่อยู่อีเมล เมื่อแทรกข้อมูลดังกล่าว (ไม่มีอีเมล) ลงในตารางมีสองตัวเลือกที่ใช้ได้: ตั้งค่าเซลล์เป็น NULL หรือตั้งค่าเป็นสตริงว่าง ('') สมมติว่าฉันทราบถึงผลกระทบทางเทคนิคทั้งหมดของการเลือกโซลูชันหนึ่งมากกว่าโซลูชันอื่นและฉันสามารถสร้างแบบสอบถาม SQL ที่ถูกต้องสำหรับสถานการณ์ใดสถานการณ์หนึ่ง ปัญหาคือแม้เมื่อค่าทั้งสองแตกต่างกันในระดับเทคนิคพวกเขาจะเหมือนกันในระดับตรรกะ หลังจากดู NULL และ '' ฉันได้ข้อสรุปเดียว: ฉันไม่รู้ที่อยู่อีเมลของผู้ชายคนนั้น ไม่ว่าฉันจะพยายามมากแค่ไหน ฉันไม่สามารถส่งอีเมลโดยใช้ NULL หรือสตริงว่างเปล่าได้ดังนั้นเซิร์ฟเวอร์ SMTP ส่วนใหญ่ก็เห็นด้วยกับเหตุผลของฉัน ดังนั้นฉันมักจะใช้ค่า NULL ที่ฉันไม่ทราบค่าและพิจารณาสตริงว่างเปล่าเป็นสิ่งที่ไม่ดี หลังจากการพูดคุยอย่างเข้มข้นกับเพื่อนร่วมงานฉันมาด้วยคำถามสองข้อ: ฉันถูกสมมติว่าการใช้สตริงว่างเปล่าสำหรับค่าที่ไม่รู้จักทำให้ฐานข้อมูล "โกหก" …
72 design  database  sql  strings  null 

3
นิรุกติศาสตร์ของ "String"
ดังนั้นจึงเห็นได้ชัดว่าสตริงของสิ่งต่าง ๆ เป็นลำดับของสิ่งต่าง ๆ และลำดับของอักขระ / ไบต์ / ฯลฯ อาจจะเรียกว่าสตริงเช่นกัน แต่ใครเป็นคนแรกที่เรียกพวกเขาว่าสตริง? และเมื่อ? และในบริบทใดที่มันติดอยู่ ฉันสงสัยเกี่ยวกับเรื่องนี้เสมอ

6
กำลังเริ่มต้นอักขระถ่าน [] ด้วยการฝึกตัวอักษรที่ไม่ถูกต้องหรือไม่?
ฉันกำลังอ่านหัวข้อเรื่อง"strlen vs sizeof" บน CodeGuruและหนึ่งในคำตอบกล่าวว่า "มันเป็นการปฏิบัติที่ไม่ดี [sic] สำหรับ initialie [sic] charอาร์เรย์ที่มีตัวอักษรสตริง" นี่เป็นความจริงหรือว่าเป็นเพียงความคิดเห็นของเขา (แม้ว่าจะเป็น "สมาชิกระดับสูง")? นี่คือคำถามเดิม: #include <stdio.h> #include<string.h> main() { char string[] = "october"; strcpy(string, "september"); printf("the size of %s is %d and the length is %d\n\n", string, sizeof(string), strlen(string)); return 0; } ขวา. ขนาดควรเป็นความยาวบวก 1 ใช่ไหม นี่คือผลลัพธ์ the size …

6
สตริง Hardcoding ที่จะไม่มีวันเปลี่ยนแปลง
ดังนั้นในความพยายามของฉันในการเขียนโปรแกรมเพื่อผันคำกริยา (อัลกอริทึมไม่ใช่ผ่านชุดข้อมูล) สำหรับภาษาฝรั่งเศสฉันเจอปัญหาเล็กน้อย อัลกอริธึมที่จะผันคำกริยานั้นง่ายมากสำหรับกรณีของคำกริยา 17- หรือ - และในรูปแบบเฉพาะสำหรับแต่ละกรณี; ดังนั้นการผันคำต่อท้ายสำหรับ 17 ชั้นเรียนเหล่านี้เป็นแบบคงที่และจะ (ไม่น่าจะ) เปลี่ยนแปลงเร็ว ๆ นี้ ตัวอย่างเช่น: // Verbs #1 : (model: "chanter") terminations = { ind_imp: ["ais", "ais", "ait", "ions", "iez", "aient"], ind_pre: ["e", "es", "e", "ons", "ez", "ent"], ind_fut: ["erai", "eras", "era", "erons", "erez", "eront"], participle: ["é", "ant"] }; …
39 design  strings 

1
C ++ 11 รวม std :: stoi ทำไมไม่ std :: itos?
ฉันสังเกตเห็นถึงความยินดีที่ C ++ 11 มีstd::sto@ตระกูลของฟังก์ชั่นสำหรับการเปิด ints / floats / longs อย่างง่ายดายจากสตริง อย่างไรก็ตามฉันก็แปลกใจว่าสิ่งที่ตรงกันข้ามไม่ได้ดำเนินการ เหตุใดคณะกรรมการมาตรฐานจึงไม่รวมstd::itosตระกูลของหน้าที่ในการย้ายจาก ints / float / อะไรก็ตาม (back) ไปเป็น strings?
37 c++  parsing  strings  c++11 

2
เหตุใด C สตริงตัวอักษรอ่านอย่างเดียว?
ข้อได้เปรียบของสตริงตัวอักษรที่อ่านได้อย่างเดียวคืออะไร (-ies / -ied): อีกวิธีในการยิงตัวเองที่เท้า char *foo = "bar"; foo[0] = 'd'; /* SEGFAULT */ ไม่สามารถเริ่มต้นอาร์เรย์ของคำอ่าน - เขียนได้อย่างหรูหราในหนึ่งบรรทัด: char *foo[] = { "bar", "baz", "running out of traditional placeholder names" }; foo[1][2] = 'n'; /* SEGFAULT */ ภาษาที่ซับซ้อนนั้นเอง char *foo = "bar"; char var[] = "baz"; some_func(foo); /* VERY DANGEROUS! …
29 c  memory  strings 

2
เหตุใด Java จึงใช้ UTF-16 สำหรับการแทนค่าสตริงภายใน
ฉันคิดว่าเหตุผลนั้นเร็วอาเรย์ชอบเข้าถึงตัวละครที่ดัชนี แต่ตัวละครบางตัวไม่พอดีกับ 16 บิตดังนั้นมันจะไม่ทำงาน ... ดังนั้นถ้าคุณต้องจัดการกับกรณีพิเศษอยู่แล้วทำไมไม่ใช้ UTF-8 ล่ะ?
29 java  strings  unicode 

2
เหตุใดจึงเก็บค่าสถานะ / enums ในฐานข้อมูลเป็นสตริงแทนที่จะเป็นจำนวนเต็ม
ฉันได้ทำการสืบค้น SQL ทิ้งของ CMS ที่มีชื่อเสียงบางตัวรวมถึง Drupal 7, Wordpress (บางรุ่นที่ค่อนข้างเก่า) และแอปพลิเคชันที่กำหนดเองบางตัวที่ใช้ Python ดัมพ์เหล่านี้ทั้งหมดมีข้อมูลที่มีแฟล็กสตริงแทนค่าจำนวนเต็ม ยกตัวอย่างเช่นสถานะการโพสต์ได้แสดงเป็นpublished, closedหรือinheritมากกว่า1, หรือ23 ฉันมีประสบการณ์ค่อนข้าง จำกัด ในการออกแบบฐานข้อมูลและฉันไม่เคยผ่าน SQL แบบง่าย ๆ มาก่อน แต่ฉันได้รับการสอนเสมอว่าฉันควรใช้ตัวเลข / จำนวนเต็มสำหรับข้อมูลเช่นนี้ ก็ชัดเจนว่าพื้นที่กินมากน้อยในฐานข้อมูลกว่ายกตัวอย่างเช่นtinyintvarchar(9) แล้วฉันจะพลาดอะไรไป? นี่ไม่ใช่การจัดเก็บข้อมูลและการสำรองข้อมูลซ้ำซ้อนหรือไม่ การเรียกดูการค้นหาและการจัดทำดัชนีจะไม่เร็วกว่านี้ไหมถ้าคอลัมน์เหล่านี้ใช้จำนวนเต็มแทนที่จะเป็นสตริง

3
อัลกอริทึมการค้นหาสตริงใดที่เร็วที่สุด
ฉันติดอยู่กับที่ซึ่งเป็นอัลกอริธึมการค้นหาสตริงที่เร็วที่สุดได้ยินความคิดเห็นมากมาย แต่ในที่สุดฉันก็ไม่แน่ใจ ฉันเคยได้ยินบางคนพูดว่าอัลกอริทึมที่เร็วที่สุดคือ Boyer-Moore และบางคนบอกว่า Knuth-Morris-Pratt เร็วกว่าจริง ผมได้มองขึ้นสำหรับซับซ้อนทั้งในส่วนของพวกเขา O(n+m)แต่พวกเขาส่วนใหญ่มีลักษณะเดียวกัน ฉันได้พบว่าในกรณีที่เลวร้ายที่สุดกรณี Boyer-Moore มีO(nm)ความซับซ้อนเมื่อเทียบกับ Knuth-Morris-Pratt ซึ่งมี O (m + 2 * n) โดยที่ n = ความยาวของข้อความและ m = ความยาวของรูปแบบ เท่าที่ฉันรู้บอยเยอร์ - มัวร์มีเวลาตรงเชิงเส้นที่เลวร้ายที่สุดถ้าฉันจะใช้กฎกาลิล คำถามของฉันสิ่งที่จริงแล้วคืออัลกอริธึมการค้นหาสตริงที่เร็วที่สุด (คำถามนี้รวมถึงอัลกอริธึมต่อยที่เป็นไปได้ทั้งหมดไม่ใช่แค่ Boyer-Moore และ Knuth-Morris-Pratt) แก้ไข:เนื่องจากคำตอบนี้ สิ่งที่ฉันกำลังมองหาคือ: ได้รับข้อความTและรูปแบบที่Pผมต้องไปหาที่ปรากฏทั้งหมดของในPT นอกจากนี้ความยาวของ P และ T มาจาก[1,2 000 000]และโปรแกรมต้องทำงานต่ำกว่า 0.15 วินาที ฉันรู้ว่า KMP และ …

6
ควรกำหนดค่าคงที่สตริงถ้าจะใช้เพียงครั้งเดียวหรือไม่
เรากำลังใช้งานอะแดปเตอร์สำหรับ Jaxen (ไลบรารี XPath สำหรับ Java) ที่ช่วยให้เราใช้ XPath เพื่อเข้าถึงโมเดลข้อมูลของแอปพลิเคชันของเรา สิ่งนี้ทำได้โดยการใช้คลาสที่จับคู่สตริง (ส่งถึงเราจาก Jaxen) ไปยังองค์ประกอบของโมเดลข้อมูลของเรา เราประเมินว่าเราต้องการประมาณ 100 คลาสโดยมีการเปรียบเทียบสตริงมากกว่า 1,000 รายการ ฉันคิดว่าวิธีที่ดีที่สุดในการทำเช่นนี้คือง่ายถ้าคำสั่ง / else พร้อมสตริงที่เขียนลงในโค้ดโดยตรงแทนที่จะกำหนดแต่ละสตริงเป็นค่าคงที่ ตัวอย่างเช่น: public Object getNode(String name) { if ("name".equals(name)) { return contact.getFullName(); } else if ("title".equals(name)) { return contact.getTitle(); } else if ("first_name".equals(name)) { return contact.getFirstName(); } else if …

5
เหตุใดสตริงจึงช้า
นับตั้งแต่ชั้นเรียนการเขียนโปรแกรมครั้งแรกของฉันในโรงเรียนมัธยมฉันได้ยินมาว่าการทำงานของสายอักขระนั้นช้ากว่า - มีค่าใช้จ่ายสูงกว่า "การปฏิบัติการโดยเฉลี่ย" ในตำนาน ทำไมจึงทำให้ช้า (คำถามนี้ปล่อยให้กว้างโดยเจตนา)

7
มันเป็นการปฏิบัติที่ไม่ถูกต้องหรือไม่ที่จะเก็บค่าบางอย่างเป็นสตริง
มันเป็นชื่อที่คลุมเครือมาก แต่ฉันก็นึกไม่ออกว่าจะพูดอะไรดี แต่เพียงแค่เป็นตัวอย่างที่คิดเกี่ยวกับทิศทางที่ตัวละครในเกมที่มีการเคลื่อนไหวใน. if(character.direction == "left")มันก็รู้สึกชนิดของความผิดที่จะต้องใช้สตริงแล้วทำสิ่งที่ชอบ ดูเหมือนว่าผมว่ามันออกจากห้องมากเกินไปสำหรับข้อผิดพลาดโง่เหมือนตั้งใจใช้Leftหรือหรือสิ่งแทนl leftความสงสัยของฉันถูกต้องหรือไม่? ถ้าเป็นเช่นนั้นแล้ววิธีที่ต้องการในการบรรลุสิ่งนี้คืออะไร?

4
ฉันจะแยกคำออกจากประโยคและกำหนดว่าแต่ละส่วนของคำพูดคืออะไร? [ปิด]
เป็นการยากที่จะบอกสิ่งที่ถูกถามที่นี่ คำถามนี้คลุมเครือคลุมเครือไม่สมบูรณ์กว้างเกินไปหรือโวหารและไม่สามารถตอบได้อย่างสมเหตุสมผลในรูปแบบปัจจุบัน สำหรับความช่วยเหลือในการทำความเข้าใจคำถามนี้เพื่อที่จะสามารถเปิด, ไปที่ศูนย์ช่วยเหลือ ปิดให้บริการใน6 ปีที่ผ่านมา ฉันต้องการเขียนสิ่งที่ต้องใช้ประโยคและระบุแต่ละคำที่มันมีและกำหนดว่าส่วนใดของคำพูดแต่ละคำคืออะไร ตัวอย่างเช่น สวัสดีชาวโลกฉันเป็นประโยคหนึ่ง จะกลับมานี้ verb noun, pronoun verb adjective noun ในอุดมคติแล้วฉันต้องการที่จะก้าวไปอีกขั้นหนึ่งและรับประโยคและโดยทางโปรแกรมแล้วเข้าใจว่าสิ่งที่พยายามตีความและอาจทำบางสิ่งเกี่ยวกับมัน ดังนั้นคำถามของฉันคือมีคนได้ยินบางสิ่งเช่นนี้หรือไม่?

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.