การเขียนโปรแกรม

คำถาม & คำตอบสำหรับโปรแกรมเมอร์มืออาชีพและกระตือรือร้น

30
วิธีการลบอักขระตัวสุดท้ายออกจากสตริง
ฉันต้องการลบอักขระตัวสุดท้ายออกจากสตริง ฉันพยายามทำสิ่งนี้: public String method(String str) { if (str.charAt(str.length()-1)=='x'){ str = str.replace(str.substring(str.length()-1), ""); return str; } else{ return str; } } รับความยาวของสตริง - 1 และแทนที่ตัวอักษรตัวสุดท้ายด้วยอะไร (ลบมัน) แต่ทุกครั้งที่ฉันรันโปรแกรมมันจะลบตัวอักษรกลางที่เหมือนกับตัวอักษรตัวสุดท้าย ตัวอย่างเช่นคำว่า "admirer"; หลังจากที่ฉันใช้วิธีการฉันได้รับ "admie." ฉันต้องการที่จะกลับคำชื่นชม
483 java  string 

15
วิธีการย้ายไฟล์จาก repit git หนึ่งไปยังอีก (ไม่ใช่โคลน), การเก็บประวัติ
ที่เก็บ Git ของเราเริ่มต้นจากส่วนหนึ่งของที่เก็บมอนสเตอร์ SVN เดียวที่แต่ละโครงการมีต้นไม้เป็นของตัวเองเช่น: project1/branches /tags /trunk project2/branches /tags /trunk svn mvเห็นได้ชัดว่ามันเป็นเรื่องง่ายสวยที่จะย้ายไฟล์จากที่หนึ่งไปยังอีกด้วย แต่ใน Git แต่ละโครงการอยู่ในพื้นที่เก็บข้อมูลของตัวเองและวันนี้ผมก็ถามว่าจะย้ายไดเรกทอรีย่อยจากไปproject2 project1ฉันทำอะไรเช่นนี้ $ git clone project2 $ cd project2 $ git filter-branch --subdirectory-filter deeply/buried/java/source/directory/A -- --all $ git remote rm origin # so I don't accidentally overwrite the repo ;-) $ mkdir -p deeply/buried/different/java/source/directory/B $ …
483 git  repository 

14
แนวทางปฏิบัติที่ดีที่สุดสำหรับ Python ยืนยัน
มีปัญหาด้านประสิทธิภาพหรือการบำรุงรักษารหัสเมื่อใช้assertเป็นส่วนหนึ่งของรหัสมาตรฐานแทนที่จะใช้เพื่อการดีบักหรือไม่ คือ assert x >= 0, 'x is less than zero' ดีกว่าหรือแย่กว่า if x < 0: raise Exception, 'x is less than zero' นอกจากนี้ยังมีวิธีการตั้งกฎทางธุรกิจเช่นif x < 0 raise errorนั้นที่จะถูกตรวจสอบโดยไม่ต้องทำtry/except/finallyเช่นนั้นตลอดเวลาหากรหัสตลอดเวลาxน้อยกว่า 0 ข้อผิดพลาดจะเพิ่มขึ้นเช่นถ้าคุณตั้งไว้assert x < 0ที่จุดเริ่มต้นของฟังก์ชั่น ที่ไหนxจะกลายเป็น 0 แล้วมีข้อยกเว้นยก

21
วิธีตรวจสอบว่าค่าใด ๆ เป็น NaN ใน Pandas DataFrame
ใน Python Pandas วิธีที่ดีที่สุดในการตรวจสอบว่า DataFrame มีหนึ่ง NaN มากกว่าหนึ่งค่าคืออะไร ฉันรู้เกี่ยวกับฟังก์ชั่นpd.isnanนี้ แต่คืนค่า DataFrame ของ booleans สำหรับแต่ละองค์ประกอบ โพสต์นี้ตรงนี้ไม่ตอบคำถามของฉันอย่างแน่นอน
483 python  pandas  dataframe  nan 


29
ฉันจะรับพา ธ และชื่อของไฟล์ที่กำลังทำงานอยู่ได้อย่างไร
ฉันมีสคริปต์ที่เรียกไฟล์สคริปต์อื่น ๆ แต่ฉันต้องได้รับ filepath ของไฟล์ที่กำลังทำงานอยู่ในกระบวนการ ตัวอย่างเช่นสมมติว่าฉันมีสามไฟล์ ใช้execfile : script_1.pyscript_2.pyโทร ในทางกลับกันเรียกscript_2.pyscript_3.py ฉันจะได้รับชื่อไฟล์และเส้นทางของscript_3.py, จากรหัสภายในscript_3.pyโดยไม่ต้องส่งผ่านข้อมูลที่เป็นข้อโต้แย้งจากscript_2.py? (การดำเนินการos.getcwd()ส่งคืนไฟล์พา ธ ของสคริปต์เริ่มต้นต้นฉบับไม่ใช่ไฟล์ปัจจุบัน)
482 python  scripting  file 

17
จะยกเลิกการเลือกปุ่มตัวเลือกได้อย่างไร?
ฉันมีกลุ่มของปุ่มตัวเลือกที่ฉันต้องการยกเลิกการเลือกหลังจากส่งแบบฟอร์ม AJAX โดยใช้ jQuery ฉันมีฟังก์ชั่นต่อไปนี้: function clearForm(){ $('#frm input[type="text"]').each(function(){ $(this).val(""); }); $('#frm input[type="radio":checked]').each(function(){ $(this).checked = false; }); } ด้วยความช่วยเหลือของฟังก์ชั่นนี้ฉันสามารถล้างค่าที่กล่องข้อความ แต่ฉันไม่สามารถล้างค่าของปุ่มตัวเลือก อย่างไรก็ตามฉันก็พยายาม$(this).val("");แต่ก็ไม่ได้ผล

13
วิธีอ่านค่าของฟิลด์ส่วนตัวจากคลาสอื่นใน Java
ฉันมีคลาสที่ออกแบบมาไม่ดีในบุคคลที่สามJARและฉันจำเป็นต้องเข้าถึงหนึ่งในฟิลด์ส่วนตัวของมัน ตัวอย่างเช่นทำไมฉันต้องเลือกเขตข้อมูลส่วนตัวจึงจำเป็น? class IWasDesignedPoorly { private Hashtable stuffIWant; } IWasDesignedPoorly obj = ...; ฉันจะใช้การสะท้อนเพื่อรับค่าได้stuffIWantอย่างไร

16
ฉันจะรับดัชนีค่าสูงสุด N ในอาร์เรย์ NumPy ได้อย่างไร
NumPy np.argmaxเสนอวิธีที่จะได้ดัชนีของค่าสูงสุดของอาร์เรย์ผ่าน ฉันต้องการสิ่งที่คล้ายกัน แต่คืนค่าดัชนีของNค่าสูงสุด ตัวอย่างเช่นถ้าฉันมีอาร์เรย์[1, 3, 2, 4, 5], function(array, n=3)จะกลับมาดัชนีซึ่งสอดคล้องกับองค์ประกอบ[4, 3, 1][5, 4, 3]

30
วิธีส่วนตัวของ JavaScript
ในการสร้างคลาส JavaScript ด้วยวิธีสาธารณะฉันจะทำสิ่งที่ชอบ: function Restaurant() {} Restaurant.prototype.buy_food = function(){ // something here } Restaurant.prototype.use_restroom = function(){ // something here } ด้วยวิธีนี้ผู้ใช้ในชั้นเรียนของฉันสามารถ: var restaurant = new Restaurant(); restaurant.buy_food(); restaurant.use_restroom(); ฉันจะสร้างวิธีส่วนตัวที่สามารถเรียกใช้โดยbuy_foodและuse_restroomวิธีการ แต่ไม่ภายนอกโดยผู้ใช้ของชั้นเรียนได้อย่างไร ในคำอื่น ๆ ฉันต้องการใช้วิธีการของฉันสามารถทำได้: Restaurant.prototype.use_restroom = function() { this.private_stuff(); } แต่สิ่งนี้ไม่ได้ผล: var r = new Restaurant(); r.private_stuff(); ฉันจะกำหนดprivate_stuffเป็นวิธีส่วนตัวได้อย่างไรเพื่อให้การพักทั้งสองนี้เป็นจริง ฉันได้อ่านการเขียนของ Doug Crockfordสองสามครั้ง …

5
ตัวระบุรูปแบบที่ถูกต้องสำหรับ double ใน printf
ตัวระบุรูปแบบที่ถูกต้องสำหรับdoubleใน printf คืออะไร มัน%fหรือมันคือ%lf? ฉันเชื่อว่ามัน%fแต่ฉันไม่แน่ใจ ตัวอย่างโค้ด #include <stdio.h> int main() { double d = 1.4; printf("%lf", d); // Is this wrong? }



9
ฉันควรหลีกเลี่ยงการใช้วิธีกำหนดขนาด (ที่ต้องการ | สูงสุด | ต่ำสุด) ใน Java Swing หรือไม่
หลายครั้งที่ฉันถูกวิพากษ์วิจารณ์ว่ามีการแนะนำให้ใช้วิธีการต่อไปนี้: setPreferredSize setMinimumSize setMaximumSize บนSwingส่วนประกอบ ฉันไม่เห็นทางเลือกอื่นใดสำหรับการใช้งานของพวกเขาเมื่อฉันต้องการกำหนดสัดส่วนระหว่างส่วนประกอบที่แสดง ฉันได้รับการบอกเรื่องนี้: ด้วยเลย์เอาต์คำตอบเหมือนกันเสมอ: ใช้ LayoutManager ที่เหมาะสม ฉันค้นหาเว็บเล็กน้อย แต่ฉันไม่พบการวิเคราะห์ที่ครอบคลุมเกี่ยวกับเรื่องนี้ ดังนั้นฉันมีคำถามต่อไปนี้: ฉันควรหลีกเลี่ยงการใช้วิธีการเหล่านั้นอย่างสมบูรณ์หรือไม่? มีการกำหนดวิธีการด้วยเหตุผล ดังนั้นเมื่อไรฉันจึงควรใช้ ในบริบทใด มีวัตถุประสงค์อะไร? อะไรคือผลกระทบด้านลบจากการใช้วิธีการเหล่านั้น? (ฉันคิดได้แค่เพิ่มความสะดวกในการพกพาระหว่างระบบที่มีความละเอียดหน้าจอต่างกัน) ฉันไม่คิดว่า LayoutManager ใด ๆ สามารถตอบสนองทุกรูปแบบที่ต้องการได้อย่างแท้จริง ฉันจำเป็นต้องใช้ LayoutManager ใหม่สำหรับรูปแบบเล็ก ๆ น้อย ๆ ทุกรูปแบบหรือไม่ หากคำตอบของ 4 คือ "ใช่" สิ่งนี้จะนำไปสู่การเพิ่มจำนวนคลาส LayoutManager ซึ่งจะยากต่อการรักษาหรือไม่? ในสถานการณ์ที่ฉันต้องกำหนดสัดส่วนระหว่างลูกของ Component (เช่น child1 ควรใช้พื้นที่ 10%, child2 40%, child3 50%) …


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