Làm cách nào để đọc một dòng số nguyên được phân tách bằng dấu cách trong C?

Tôi gặp phải vấn đề làm thế nào để lấy các số nguyên được phân tách bằng dấu cách trong java bằng lớp máy quét. Tôi đã thử nhiều thứ từ stack over flow nhưng rất ít hiệu quả. Vì vậy, cuối cùng khi tôi tìm ra cách làm điều đó, tôi đang chia sẻ nó với mọi người

Scanner scanner = new Scanner[System.in];
List list = new ArrayList[];
while [scanner.hasNextInt[]]
list.add[scanner.nextInt[]];
int[] arr = list.toArray[new int[0]];

Nhưng điều này đang sử dụng Danh sách có thể không dành cho người mới bắt đầu trong java

Vì vậy, tôi tìm thấy một cách khác. -

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}

Ok Chỉ cần sao chép dán nó và nó sẽ hoạt động

Tôi sẽ phải giải thích nó quá?

Vì vậy, dòng tiếp theo đọc một dòng từ Máy quét. Nó nhận được một dòng đầu vào dưới dạng một chuỗi. Chúng tôi đang sử dụng nextLine vì nó chỉ đọc dòng cho đến khi đạt đến '\ n' được biểu thị là nextLine

Bây giờ chúng tôi đã đọc một chuỗi nhưng có vẻ như

"1 2 3 4 5 6 7 8 9"

Bây giờ việc sử dụng chuỗi này là gì. Bây giờ chúng ta cần phá vỡ chuỗi này. Hàm split[] này cũng có sẵn trong python. Vì vậy, khi chúng tôi chia tách, nó sẽ chuyển đổi chuỗi thành Mảng

máy quét. hàng tiếp theo[]. tách ra[" "]

['1','2','3','4','5','6','7','8','9']

Bây giờ để lưu trữ một mảng, chúng ta cần một mảng, đó là lý do tại sao có [Chuỗi []] dấu ngoặc vuông

Bây giờ chúng ta có mọi thứ tuyệt vời chỉ có một vấn đề là dữ liệu trong mảng string là các ký tự không phải int nên chúng ta cần chuyển đổi nó thành số nguyên

a=Số nguyên. parseInt[s[0]]

System.out.println[a]1

Hàm này chuyển đổi chuỗi thành số nguyên. Bạn có thể đọc thêm về nó từ google nhưng đó là toàn bộ cơ bản để đọc đầu vào được phân tách bằng dấu cách

Sử dụng vòng lặp while để tiếp tục duyệt qua tất cả các ký tự [sử dụng fread] cho đến khi kết thúc tệp và kiểm tra xem ký tự có phải là một chữ số không. Nếu đó là một chữ số, hãy thêm nó vào biến của bạn để giữ số đó và chuyển sang ký tự tiếp theo. Nếu đó là khoảng trắng, hãy tải số trước đó vào mảng hoặc danh sách được liên kết của bạn và chuyển sang ký tự tiếp theo. Điều tương tự cho

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
3

Hàm nhận một đối số tùy chọn

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
4 và ghi nó vào đầu ra tiêu chuẩn mà không có một dòng mới ở cuối

Sau đó, hàm đọc dòng từ đầu vào, chuyển đổi nó thành chuỗi và trả về kết quả

Lưu ý rằng hàm

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
5 được đảm bảo trả về một chuỗi, ngay cả khi người dùng nhập một số nguyên

my_list = input['Enter space-separated integers: '].split[]

list_of_integers = [int[item] for item in my_list]

print[list_of_integers]

Phương thức tách chuỗi thành một danh sách các chuỗi con bằng dấu phân cách

Khi không có dấu tách nào được chuyển đến phương thức

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
6, nó sẽ tách chuỗi đầu vào thành một hoặc nhiều ký tự khoảng trắng

Bước cuối cùng là sử dụng khả năng hiểu danh sách để chuyển đổi các chuỗi trong danh sách thành số nguyên

my_list = input['Enter space-separated integers: '].split[]

list_of_integers = [int[item] for item in my_list]

print[list_of_integers]

Khả năng hiểu danh sách được sử dụng để thực hiện một số thao tác cho mọi phần tử hoặc chọn một tập hợp con các phần tử đáp ứng một điều kiện

Trên mỗi lần lặp, chúng tôi chuyển mục danh sách hiện tại sang lớp

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
7 để chuyển đổi nó thành một số nguyên

Ngoài ra, bạn có thể sử dụng hàm

my_list = input['Enter space-separated integers: '].split[]

list_of_integers = [int[item] for item in my_list]

print[list_of_integers]
2

Để lấy các số nguyên được phân tách bằng dấu cách từ đầu vào của người dùng

  1. Sử dụng hàm
    String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
    }
    5 để lấy nhiều số nguyên cách nhau bằng dấu cách
  2. Sử dụng hàm
    my_list = input['Enter space-separated integers: '].split[]
    
    list_of_integers = [int[item] for item in my_list]
    
    print[list_of_integers]
    
    2 để chuyển đổi từng chuỗi thành số nguyên
  3. Sử dụng lớp
    my_list = input['Enter space-separated integers: '].split[]
    
    list_of_integers = [int[item] for item in my_list]
    
    print[list_of_integers]
    
    5 để chuyển đổi đối tượng
    my_list = input['Enter space-separated integers: '].split[]
    
    list_of_integers = [int[item] for item in my_list]
    
    print[list_of_integers]
    
    6 thành danh sách

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
1

Chúng tôi đã sử dụng hàm

String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
6 để tách chuỗi gồm nhiều số nguyên được phân tách bằng dấu cách

Hàm nhận một hàm và một iterable làm đối số và gọi hàm với mỗi mục của iterable

Hàm

my_list = input['Enter space-separated integers: '].split[]

list_of_integers = [int[item] for item in my_list]

print[list_of_integers]
6 gọi lớp
String s[]= scanner.nextLine[].split[" "];for[int i =0 ;i < s.length;i++]{    a[i]= Integer.parseInt[s[i]];
}
7 với mỗi giá trị trong danh sách và chuyển đổi mỗi chuỗi thành một số nguyên

Làm cách nào để đọc các số nguyên được phân tách bằng dấu cách trong C?

scanf sử dụng bất kỳ khoảng trắng nào làm dấu phân cách, vì vậy nếu bạn chỉ nói scanf["%d", &var] thì nó sẽ bỏ qua mọi khoảng trắng .

Làm cách nào để đọc các giá trị được phân tách bằng dấu cách từ tệp trong C?

Bạn luôn có thể sử dụng sscanf .

Làm cách nào để nhập chuỗi có dấu cách trong C?

Bạn có thể sử dụng hàm scanf[] để đọc một chuỗi. Hàm scanf[] đọc chuỗi ký tự cho đến khi gặp khoảng trắng [dấu cách, dòng mới, tab, v.v. ]

Làm cách nào để lấy đầu vào được phân tách bằng dấu phẩy trong C?

Làm cách nào để nhập chuỗi được phân tách bằng dấu phẩy? .
Lấy chuỗi được lấy làm đầu vào trong stringstream
Lấy từng ký tự của chuỗi một từ luồng
Kiểm tra xem ký tự này có phải là dấu phẩy [', ']
Nếu có thì bỏ qua ký tự đó
Khác, Chèn ký tự này vào vectơ lưu trữ các từ

Chủ Đề