01/10/2018, 00:38

Cho e cách phân tích chuỗi trong java

Các bác cho em hỏi bấy h e có 1 chỗi 354dfgd5SDdsfF*(&3 e muốn tách tất cả các cái này thành mỗi mảng chứa số chữ và dấu thì làm thế nào hả các bác sử dụng JAVA ạ

Dương Nylghara viết 02:46 ngày 01/10/2018
String g = "line";
char c = g.charAt(0);  // returns 'l'
char[] c_arr = g.toCharArray(); // returns a length 4 char array ['l','i','n','e']

sau đó dùng hàm For duyệt mảng -> Kiểm tra

Nam Ngọc viết 02:41 ngày 01/10/2018

nhưng mà tách như thế này thì 67a5a56 nó tách thành 6,5,a,5,a,5,6 nhưng e muốn tách thành 65,a,5,a,56

Nam Ngọc viết 02:49 ngày 01/10/2018

vì phân tích xong còn phải kt số có chẵn lẻ , và nguyên tố nữa

Dương Nylghara viết 02:42 ngày 01/10/2018

Mình thì chuyên C# nên ý tưởng mình như thế này…

Bạn dùng vòng For sau đó tìm trong chuỗi tại vị trí nào xuất hiện kí tự -> sau đó cắt

http://v1study.com/java-ham-xu-ly-chuoi-string-a577.html

Thử dùng CharAt + Substring

Đỗ Trung Quân viết 02:41 ngày 01/10/2018
    String str = "354dfgd5SDdsfF*(&3";
    String rs[] = str.split("(?<=\\D)(?=\\d)|(?<=\\d)(?=\\D)");
    for(String a : rs){
    	System.out.println(a);
    }

Hoặc

   private List<String> Parse(String str) {
        List<String> output = new ArrayList<String>();
        Matcher match = Pattern.compile("[0-9]+|[a-z]+|[A-Z]+").matcher(str);
        while (match.find()) {
           output.add(match.group());
         }
        return output;
   }
  
  Main(){
         ArrayList<String> listStr = Parse("354dfgd5SDdsfF*(&3");
         for(String rs : listStr){
    	      System.out.println(rs);
         }
  }
Nam Ngọc viết 02:48 ngày 01/10/2018

bác ơi cho em hỏi bây h , e muốn tách thêm kí tự đặc biệt regex là gì ạ

Đỗ Trung Quân viết 02:51 ngày 01/10/2018

bác ơi cho em hỏi bây h , e muốn tách thêm kí tự đặc biệt regex là gì ạ

Quy luật là gì? Ký tự đặc biệt như nào?

Nam Ngọc viết 02:54 ngày 01/10/2018

nếu không tách số xong tách thêm chữ hoa và chữ thường , e tách lần nữa cho chạy vòng for thì nó chỉ add đc 1 lần thôi

Đỗ Trung Quân viết 02:54 ngày 01/10/2018

Đã tách được hết như trên rồi thì em muốn làm gì chả được. Xử lý với kết quả em tách ra đó

ninhhung viết 02:50 ngày 01/10/2018

Xin lỗi đã đào mộ bác Quân một chút, nếu trong chuỗi (do người dùng nhập vào có ký tự đặc biệt kiểu nháy kép " ) thì trong hàm split phải viết như nào để cắt được cả nháy kép đấy ạ?

Nguyễn Đình Anh viết 02:43 ngày 01/10/2018

Dùng String[] cut = str.split("\""); nhé bạn

ninhhung viết 02:46 ngày 01/10/2018

Cảm ơn bạn nhé!. Cho mình hỏi thêm chút nữa, nếu mình muốn split tất cả ký tự đặc biệt, kiểu như: !@#$%^^&I)"… thì mình phải liệt kê hết ra trong hàm split à?

Nguyễn Đình Anh viết 02:50 ngày 01/10/2018

Thế thì lọc thủ công đi, cái nào không phải chữ hay số thì là ký tự đặc biệt

ninhhung viết 02:51 ngày 01/10/2018

Thanks bạn nhé!, mình vừa tìm được cái biểu thức chính quy, sử dụng Pattern.compile để lọc.

Bài liên quan
0