Chào mừng đến với Diễn đàn lập trình - Cộng đồng lập trình.
Trang 1 của 2 12 CuốiCuối
Kết quả 1 đến 10 của 11
  1. #1
    Ngày tham gia
    Sep 2015
    Bài viết
    0

  2. #2
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Hai dấu \, gọi là escape sequence.

  3. #3
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    Hai dấu \, gọi là escape sequence.
    ý mình là ví dụ mình có 1 chuối là "qwerty\123456\zxcvbn\asdfgh" giờ mình a.split("\"); thì bị lỗi

  4. #4
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    ^ Dấu \ là kí tự đặc biệt cơ mà.
    1. a.split("\\") đúng hơn.
    2. Nếu chuỗi ở ngoài nhập vào thì dùng (1) split đc, nếu là chuỗi bạn hardcode thì chú ý là 2 dấu \\ là 1 dấu \.

  5. #5
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    ^ Dấu \ là kí tự đặc biệt cơ mà.
    1. a.split("\\") đúng hơn.
    2. Nếu chuỗi ở ngoài nhập vào thì dùng (1) split đc, nếu là chuỗi bạn hardcode thì chú ý là 2 dấu \\ là 1 dấu \.
    Mình thử rồi trong lúc biên dịch thì không báo lỗi nhưng lúc chạy chương trình thì lỗi T_T

    code mình đây
    Mã:
                String split1[]= step.split("\\");
    Mã:
    Exception in thread "AWT-EventQueue-0" java.util.regex.PatternSyntaxException: Unexpected internal error near index 1
    \
     ^
    	at java.util.regex.Pattern.error(Pattern.java:1924)
    	at java.util.regex.Pattern.compile(Pattern.java:1671)
    	at java.util.regex.Pattern.<init>(Pattern.java:1337)
    	at java.util.regex.Pattern.compile(Pattern.java:1022)
    	at java.lang.String.split(String.java:2313)
    	at java.lang.String.split(String.java:2355)
    	at View.UI.menuItemLoadFileActionPerformed(UI.java:203)
    	at View.UI.access$300(UI.java:25)
    	at View.UI$5.actionPerformed(UI.java:107)
    	at javax.swing.AbstractButton.fireActionPerformed(AbstractButton.java:2018)
    	at javax.swing.AbstractButton$Handler.actionPerformed(AbstractButton.java:2341)
    	at javax.swing.DefaultButtonModel.fireActionPerformed(DefaultButtonModel.java:402)
    	at javax.swing.DefaultButtonModel.setPressed(DefaultButtonModel.java:259)
    	at javax.swing.AbstractButton.doClick(AbstractButton.java:376)
    	at javax.swing.plaf.basic.BasicMenuItemUI.doClick(BasicMenuItemUI.java:833)
    	at javax.swing.plaf.basic.BasicMenuItemUI$Handler.mouseReleased(BasicMenuItemUI.java:877)
    	at java.awt.Component.processMouseEvent(Component.java:6505)
    	at javax.swing.JComponent.processMouseEvent(JComponent.java:3320)
    	at java.awt.Component.processEvent(Component.java:6270)
    	at java.awt.Container.processEvent(Container.java:2229)
    	at java.awt.Component.dispatchEventImpl(Component.java:4861)
    	at java.awt.Container.dispatchEventImpl(Container.java:2287)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.LightweightDispatcher.retargetMouseEvent(Container.java:4832)
    	at java.awt.LightweightDispatcher.processMouseEvent(Container.java:4492)
    	at java.awt.LightweightDispatcher.dispatchEvent(Container.java:4422)
    	at java.awt.Container.dispatchEventImpl(Container.java:2273)
    	at java.awt.Window.dispatchEventImpl(Window.java:2719)
    	at java.awt.Component.dispatchEvent(Component.java:4687)
    	at java.awt.EventQueue.dispatchEventImpl(EventQueue.java:735)
    	at java.awt.EventQueue.access$200(EventQueue.java:103)
    	at java.awt.EventQueue$3.run(EventQueue.java:694)
    	at java.awt.EventQueue$3.run(EventQueue.java:692)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:87)
    	at java.awt.EventQueue$4.run(EventQueue.java:708)
    	at java.awt.EventQueue$4.run(EventQueue.java:706)
    	at java.security.AccessController.doPrivileged(Native Method)
    	at java.security.ProtectionDomain$1.doIntersectionPrivilege(ProtectionDomain.java:76)
    	at java.awt.EventQueue.dispatchEvent(EventQueue.java:705)
    	at java.awt.EventDispatchThread.pumpOneEventForFilters(EventDispatchThread.java:242)
    	at java.awt.EventDispatchThread.pumpEventsForFilter(EventDispatchThread.java:161)
    	at java.awt.EventDispatchThread.pumpEventsForHierarchy(EventDispatchThread.java:150)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:146)
    	at java.awt.EventDispatchThread.pumpEvents(EventDispatchThread.java:138)
    	at java.awt.EventDispatchThread.run(EventDispatchThread.java:91)

  6. #6
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Chơi tới regex thì làm luôn "\\\".

  7. #7
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi prog10
    Chơi tới regex thì làm luôn "\\\".
    mình đã thử và nó đã báo lỗi trong ngay đoạn code

  8. #8
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Kunedo
    ý mình là ví dụ mình có 1 chuối là "qwerty\123456\zxcvbn\asdfgh" giờ mình a.split("\"); thì bị lỗi
    chuỗi này sai mà: pải như này mới đúng qwerty\\123456\\zxcvbn\\asdfgh

  9. #9
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Dùng tới biểu thức chính quy thì phải 4 dấu \ mới thể hiện cho 1 dấu \
    String.split("\\\\");
    Với quy tắc 2 dấu thoát \\ thành một dấu gạch chéo ngược \
    Thoát lần 1 ở chuỗi thành chuỗi cơ bản \\
    Thoát lần 2 ở biểu thức chính quy thành \

  10. #10
    Ngày tham gia
    Sep 2015
    Bài viết
    0
    Trích dẫn Gửi bởi Kunedo
    Chuỗi đó mình cũng không biết tại sao nó không báo lỗi nữa @@
    Nếu bạn viết chuỗi đó trực tiếp trong mã java thì nó sẽ báo lỗi. Còn nếu đó là chuỗi lấy trong tập tin nào đó thì sao mà lỗi chứ.

 

 
Trang 1 của 2 12 CuốiCuối

Quyền viết bài

  • Bạn Không thể gửi Chủ đề mới
  • Bạn Không thể Gửi trả lời
  • Bạn Không thể Gửi file đính kèm
  • Bạn Không thể Sửa bài viết của mình
  •