Máy quét đang bỏ qua nextLine () sau khi sử dụng next () hoặc nextFoo ()?

737
blekione 2012-10-28 06:37.

Tôi đang sử dụng các Scannerphương pháp nextInt()nextLine()để đọc đầu vào.

Nó trông như thế này:

System.out.println("Enter numerical value");    
int option;
option = input.nextInt(); // Read numerical value from input
System.out.println("Enter 1st string"); 
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)

Vấn đề là sau khi nhập giá trị số, giá trị đầu tiên input.nextLine()bị bỏ qua và giá trị thứ hai input.nextLine()được thực thi, do đó đầu ra của tôi trông giống như sau:

Enter numerical value
3   // This is my input
Enter 1st string    // The program is supposed to stop here and wait for my input, but is skipped
Enter 2nd string    // ...and this line is executed and waits for my input

Tôi đã thử nghiệm ứng dụng của mình và có vẻ như vấn đề nằm ở việc sử dụng input.nextInt(). Nếu tôi xóa nó, thì cả hai string1 = input.nextLine()string2 = input.nextLine()đều được thực thi như tôi muốn.

20 answers

898
Rohit Jain 2012-10-28 06:39.

Đó là bởi vì Scanner.nextIntphương thức không đọc tự dòng mới trong đầu vào của bạn được tạo bằng cách nhấn "Enter" và do đó lệnh gọi Scanner.nextLinetrả về sau khi đọc dòng mới đó .

Bạn sẽ gặp phải hành vi tương tự khi bạn sử dụng Scanner.nextLineafter Scanner.next()hoặc bất kỳ Scanner.nextFoophương thức nào (ngoại trừ nextLinechính nó).

Cách giải quyết:

  • Thực hiện Scanner.nextLinecuộc gọi sau mỗi cuộc gọi Scanner.nextInthoặc Scanner.nextFoosử dụng phần còn lại của dòng đó bao gồm cả dòng mới

    int option = input.nextInt();
    input.nextLine();  // Consume newline left-over
    String str1 = input.nextLine();
    
  • Hoặc, tốt hơn nữa, hãy đọc thông tin đầu vào Scanner.nextLinevà chuyển đổi đầu vào của bạn sang định dạng phù hợp mà bạn cần. Ví dụ, bạn có thể chuyển đổi thành một số nguyên bằng Integer.parseInt(String)phương pháp.

    int option = 0;
    try {
        option = Integer.parseInt(input.nextLine());
    } catch (NumberFormatException e) {
        e.printStackTrace();
    }
    String str1 = input.nextLine();
    
222
Prine 2011-08-15 02:24.

Vấn đề là với phương thức input.nextInt () - nó chỉ đọc giá trị int. Vì vậy, khi bạn tiếp tục đọc với input.nextLine (), bạn sẽ nhận được phím Enter "\ n". Vì vậy, để bỏ qua điều này, bạn phải thêm input.nextLine () . Hy vọng điều này sẽ rõ ràng ngay bây giờ.

Hãy thử nó như thế:

System.out.print("Insert a number: ");
int number = input.nextInt();
input.nextLine(); // This line you have to add (It consumes the \n character)
System.out.print("Text1: ");
String text1 = input.nextLine();
System.out.print("Text2: ");
String text2 = input.nextLine();
85
Bohemian 2011-08-15 02:25.

Đó là bởi vì khi bạn nhập một số sau đó nhấn Enter, input.nextInt()chỉ tiêu thụ số đó, không phải "cuối dòng". Khi input.nextLine()thực thi, nó sử dụng "cuối dòng" vẫn còn trong bộ đệm từ đầu vào đầu tiên.

Thay vào đó, hãy sử dụng input.nextLine()ngay sauinput.nextInt()

51
Denis Tulskiy 2014-03-24 06:35.

Có vẻ như có nhiều câu hỏi về vấn đề này với java.util.Scanner. Tôi nghĩ rằng một giải pháp dễ đọc / thành ngữ hơn sẽ là gọi scanner.skip("[\r\n]+")để bỏ bất kỳ ký tự dòng mới nào sau khi gọi nextInt().

CHỈNH SỬA: như @PatrickParker đã lưu ý bên dưới, điều này sẽ gây ra vòng lặp vô hạn nếu người dùng nhập bất kỳ khoảng trắng nào sau số. Xem câu trả lời của họ để biết mẫu tốt hơn để sử dụng với bỏ qua: https://stackoverflow.com/a/42471816/143585

37
Electric Coffee 2013-02-24 12:01.

Nó làm được điều đó vì input.nextInt();không nắm bắt được dòng mới. bạn có thể làm như những người khác đề xuất bằng cách thêm một input.nextLine();bên dưới.
Ngoài ra, bạn có thể thực hiện theo kiểu C # và phân tích cú pháp nextLine thành một số nguyên như sau:

int number = Integer.parseInt(input.nextLine()); 

Làm điều này cũng hoạt động tốt và nó giúp bạn tiết kiệm một dòng mã.

28
Pshemo 2016-10-10 12:51.

TL; DR Sử dụng scanner.skip("\\R")trước mỗi scanner.newLine()cuộc gọi, được thực hiện sau:

  • scanner.next()
  • scanner.next*TYPE*()phương pháp, như scanner.nextInt().

Những điều bạn cần biết:

  • văn bản đại diện cho một vài dòng cũng chứa các ký tự không thể in giữa các dòng (chúng tôi gọi chúng là dấu phân cách dòng) như

  • ký tự xuống dòng (CR - trong chuỗi ký tự được biểu diễn dưới dạng "\r")

  • nguồn cấp dữ liệu dòng (LF - trong chuỗi ký tự được biểu thị bằng "\n")

  • khi bạn đang đọc dữ liệu từ bảng điều khiển, nó cho phép người dùng nhập phản hồi của mình và khi hoàn thành, anh ta cần phải xác nhận bằng cách nào đó sự thật đó. Để làm như vậy, người dùng bắt buộc phải nhấn phím "enter" / "return" trên bàn phím.

Điều quan trọng là phím này bên cạnh việc đảm bảo đặt dữ liệu người dùng vào đầu vào tiêu chuẩn (được đại diện bởi System.innó được đọc bởi Scanner) còn gửi các dấu phân cách dòng phụ thuộc vào hệ điều hành (như đối với Windows \r\n) sau nó.

Vì vậy, khi bạn hỏi người dùng về giá trị như age, và người dùng nhập 42 và nhấn enter, đầu vào chuẩn sẽ chứa "42\r\n".

Vấn đề

Scanner#nextInt(và các phương pháp khác ) không cho phép Máy quét sử dụng các dấu phân cách dòng này. Nó sẽ đọc chúng từ (làm cách nào khác mà Scanner có thể biết rằng không có thêm chữ số nào từ người dùng thể hiện giá trị ngoài việc phải đối mặt với khoảng trắng?) Sẽ xóa chúng khỏi đầu vào tiêu chuẩn, nhưng nó cũng sẽ lưu vào bộ nhớ cache các dấu phân cách dòng đó trong nội bộ . Điều chúng ta cần nhớ là tất cả các phương thức Scanner luôn quét bắt đầu từ văn bản được lưu trong bộ nhớ cache.Scanner#nextTypeSystem.inage

Bây giờ Scanner#nextLine()chỉ cần thu thập và trả về tất cả các ký tự cho đến khi nó tìm thấy dấu phân cách dòng (hoặc cuối luồng). Nhưng vì các dấu phân tách dòng sau khi đọc số từ bảng điều khiển được tìm thấy ngay trong bộ nhớ cache của Máy quét, nó trả về Chuỗi trống, có nghĩa là Máy quét không thể tìm thấy bất kỳ ký tự nào trước các dấu tách dòng đó (hoặc cuối luồng).
BTW nextLinecũng tiêu thụ các bộ tách dòng đó.

Giải pháp

Vì vậy, khi bạn muốn hỏi về số lượng và sau đó cho toàn bộ dòng trong khi tránh rằng chuỗi rỗng như kết quả của nextLine, hoặc

  • tiêu thụ dấu phân cách dòng được để lại nextInttừ bộ nhớ cache của Máy quét
  • gọi nextLine,
  • hoặc IMO, cách dễ đọc hơn sẽ là gọi skip("\\R")hoặc skip("\r\n|\r|\n")để Máy quét bỏ qua phần được khớp bằng dấu phân cách dòng (thông tin thêm về \R: https://stackoverflow.com/a/31060125 )
  • hoàn toàn không sử dụng nextInt(cũng không nexthoặc bất kỳ nextTYPEphương pháp nào ). Thay vào đó, đọc toàn bộ dữ liệu theo từng dòng bằng cách sử dụng nextLinevà phân tích cú pháp số từ mỗi dòng (giả sử một dòng chỉ chứa một số) thành kiểu thích hợp như intvia Integer.parseInt.

BTW : các phương thức có thể bỏ qua dấu phân cách (theo mặc định là tất cả các khoảng trắng như tab, dấu phân cách dòng) bao gồm cả những dấu cách được lưu trong bộ nhớ cache bởi máy quét, cho đến khi chúng tìm thấy giá trị không dấu phân cách tiếp theo (mã thông báo). Nhờ đó cho đầu vào như mãScanner#nextType"42\r\n\r\n321\r\n\r\n\r\nfoobar"

int num1 = sc.nextInt();
int num2 = sc.nextInt();
String name = sc.next();

sẽ có thể chỉ định đúng num1=42 num2=321 name=foobar.

17
Castaldi 2014-07-24 00:20.

Thay vì input.nextLine()sử dụng input.next(), điều đó sẽ giải quyết vấn đề.

Mã sửa đổi:

public static Scanner input = new Scanner(System.in);

public static void main(String[] args)
{
    System.out.print("Insert a number: ");
    int number = input.nextInt();
    System.out.print("Text1: ");
    String text1 = input.next();
    System.out.print("Text2: ");
    String text2 = input.next();
}
16
André Willik Valenti 2017-06-21 08:52.

Nếu bạn muốn đọc cả chuỗi và int, giải pháp là sử dụng hai Máy quét:

Scanner stringScanner = new Scanner(System.in);
Scanner intScanner = new Scanner(System.in);

intScanner.nextInt();
String s = stringScanner.nextLine(); // unaffected by previous nextInt()
System.out.println(s);

intScanner.close();
stringScanner.close();
13
NIKUNJ KHOKHAR 2017-06-16 22:12.

Nếu bạn muốn quét đầu vào nhanh chóng mà không bị nhầm lẫn với phương thức nextLine () của lớp Máy quét, hãy sử dụng Trình quét đầu vào tùy chỉnh cho nó.

Mã:

class ScanReader {
/**
* @author Nikunj Khokhar
*/
    private byte[] buf = new byte[4 * 1024];
    private int index;
    private BufferedInputStream in;
    private int total;

    public ScanReader(InputStream inputStream) {
        in = new BufferedInputStream(inputStream);
    }

    private int scan() throws IOException {
        if (index >= total) {
            index = 0;
            total = in.read(buf);
            if (total <= 0) return -1;
        }
        return buf[index++];
    }
    public char scanChar(){
        int c=scan();
        while (isWhiteSpace(c))c=scan();
        return (char)c;
    }


    public int scanInt() throws IOException {
        int integer = 0;
        int n = scan();
        while (isWhiteSpace(n)) n = scan();
        int neg = 1;
        if (n == '-') {
            neg = -1;
            n = scan();
        }
        while (!isWhiteSpace(n)) {
            if (n >= '0' && n <= '9') {
                integer *= 10;
                integer += n - '0';
                n = scan();
            }
        }
        return neg * integer;
    }

    public String scanString() throws IOException {
        int c = scan();
        while (isWhiteSpace(c)) c = scan();
        StringBuilder res = new StringBuilder();
        do {
            res.appendCodePoint(c);
            c = scan();
        } while (!isWhiteSpace(c));
        return res.toString();
    }

    private boolean isWhiteSpace(int n) {
        if (n == ' ' || n == '\n' || n == '\r' || n == '\t' || n == -1) return true;
        else return false;
    }

    public long scanLong() throws IOException {
        long integer = 0;
        int n = scan();
        while (isWhiteSpace(n)) n = scan();
        int neg = 1;
        if (n == '-') {
            neg = -1;
            n = scan();
        }
        while (!isWhiteSpace(n)) {
            if (n >= '0' && n <= '9') {
                integer *= 10;
                integer += n - '0';
                n = scan();
            }
        }
        return neg * integer;
    }

    public void scanLong(long[] A) throws IOException {
        for (int i = 0; i < A.length; i++) A[i] = scanLong();
    }

    public void scanInt(int[] A) throws IOException {
        for (int i = 0; i < A.length; i++) A[i] = scanInt();
    }

    public double scanDouble() throws IOException {
        int c = scan();
        while (isWhiteSpace(c)) c = scan();
        int sgn = 1;
        if (c == '-') {
            sgn = -1;
            c = scan();
        }
        double res = 0;
        while (!isWhiteSpace(c) && c != '.') {
            if (c == 'e' || c == 'E') {
                return res * Math.pow(10, scanInt());
            }
            res *= 10;
            res += c - '0';
            c = scan();
        }
        if (c == '.') {
            c = scan();
            double m = 1;
            while (!isWhiteSpace(c)) {
                if (c == 'e' || c == 'E') {
                    return res * Math.pow(10, scanInt());
                }
                m /= 10;
                res += (c - '0') * m;
                c = scan();
            }
        }
        return res * sgn;
    }

}

Ưu điểm:

  • Đầu vào quét nhanh hơn BufferReader
  • Giảm thời gian phức tạp
  • Đổ bộ đệm cho mỗi lần nhập tiếp theo

Phương pháp:

  • scanChar () - quét một ký tự
  • scanInt () - quét giá trị Integer
  • scanLong () - quét Giá trị dài
  • scanString () - quét giá trị chuỗi
  • scanDouble () - quét Giá trị kép
  • scanInt (int [] array) - quét toàn bộ Mảng (Số nguyên)
  • scanLong (dài [] mảng) - quét hoàn chỉnh Mảng (Dài)

Sử dụng :

  1. Sao chép mã Given bên dưới mã java của bạn.
  2. Khởi tạo đối tượng cho lớp cho trước

ScanReader sc = new ScanReader(System.in); 3. Nhập các Lớp cần thiết:

import java.io.BufferedInputStream; import java.io.IOException; import java.io.InputStream; 4. Ném IOException khỏi phương thức chính của bạn để xử lý Exception 5. Sử dụng các phương thức được cung cấp. 6. Thưởng thức

Thí dụ :

import java.io.BufferedInputStream;
import java.io.IOException;
import java.io.InputStream;
class Main{
    public static void main(String... as) throws IOException{
        ScanReader sc = new ScanReader(System.in);
        int a=sc.scanInt();
        System.out.println(a);
    }
}
class ScanReader....
12
Urvashi Gupta 2016-11-17 14:51.

Để tránh sự cố, hãy sử dụng nextLine();ngay sau nextInt();đó vì nó giúp xóa bộ đệm. Khi bạn nhấn ENTER, nextInt();không ghi lại dòng mới và do đó, bỏ qua Scannermã sau đó.

Scanner scanner =  new Scanner(System.in);
int option = scanner.nextInt();
scanner.nextLine(); //clearing the buffer
10
shankar upadhyay 2017-09-15 00:16.

sc.nextLine()tốt hơn so với phân tích cú pháp đầu vào. Bởi vì hiệu suất khôn ngoan nó sẽ tốt.

6
Taslim Oseni 2018-01-08 00:33.

Tôi đoán tôi đến khá muộn trong bữa tiệc ..

Như đã nói trước đây, việc gọi input.nextLine()sau khi nhận được giá trị int sẽ giải quyết được vấn đề của bạn. Lý do tại sao mã của bạn không hoạt động là vì không có gì khác để lưu trữ từ đầu vào của bạn (nơi bạn nhập int) vào string1. Tôi sẽ chỉ làm sáng tỏ hơn một chút về toàn bộ chủ đề.

Hãy coi nextLine () là phương thức kỳ lạ trong số các phương thức nextFoo () trong lớp Máy quét. Hãy lấy một ví dụ nhanh .. Giả sử chúng ta có hai dòng mã giống như những dòng bên dưới:

int firstNumber = input.nextInt();
int secondNumber = input.nextInt();

Nếu chúng ta nhập giá trị bên dưới (dưới dạng một dòng đầu vào)

54 234

Giá trị của biến của chúng ta firstNumbersecondNumberbiến lần lượt trở thành 54 và 234. Lý do tại sao điều này hoạt động theo cách này là vì một nguồn cấp dòng mới ( tức là \ n ) KHÔNG được tạo tự động khi phương thức nextInt () nhận các giá trị. Nó chỉ đơn giản là lấy "số nguyên tiếp theo" và tiếp tục. Điều này cũng tương tự đối với phần còn lại của các phương thức nextFoo () ngoại trừ nextLine ().

nextLine () tạo nguồn cấp dòng mới ngay sau khi nhận một giá trị; đây là ý nghĩa của @RohitJain khi nói rằng nguồn cấp dữ liệu dòng mới đã được "tiêu thụ".

Cuối cùng, phương thức next () chỉ đơn giản là lấy Chuỗi gần nhất mà không tạo một dòng mới; điều này làm cho phương pháp này được ưu tiên để lấy các Chuỗi riêng biệt trong cùng một dòng.

Tôi hy vọng điều này sẽ giúp .. Chúc bạn mã hóa vui vẻ!

5
Neeraj Gahlawat 2017-07-30 17:48.
public static void main(String[] args) {
        Scanner scan = new Scanner(System.in);
        int i = scan.nextInt();
        scan.nextLine();
        double d = scan.nextDouble();
        scan.nextLine();
        String s = scan.nextLine();

        System.out.println("String: " + s);
        System.out.println("Double: " + d);
        System.out.println("Int: " + i);
    }
5
Harsh Shah 2019-01-17 09:24.

Sử dụng 2 đối tượng máy quét thay vì một

Scanner input = new Scanner(System.in);
System.out.println("Enter numerical value");    
int option;
Scanner input2 = new Scanner(System.in);
option = input2.nextInt();
4
Kaplan 2019-10-02 07:20.

nếu tôi mong đợi một đầu vào không trống

public static Function<Scanner,String> scanLine = (scan -> {
    String s = scan.nextLine();
    return( s.length() == 0 ? scan.nextLine() : s );
  });


được sử dụng trong ví dụ trên:

System.out.println("Enter numerical value");    
int option = input.nextInt(); // read numerical value from input

System.out.println("Enter 1st string"); 
String string1 = scanLine.apply( input ); // read 1st string
System.out.println("Enter 2nd string");
String string2 = scanLine.apply( input ); // read 2nd string
4
Giri 2020-01-25 01:32.

Trong một lần sử dụng của tôi, tôi đã gặp tình huống đọc một giá trị chuỗi đứng trước một vài giá trị số nguyên . Tôi đã phải sử dụng " vòng lặp for / while " để đọc các giá trị. Và không có gợi ý nào ở trên hoạt động trong trường hợp này.

Sử dụng input.next()thay vì đã input.nextLine()khắc phục sự cố. Hy vọng điều này có thể hữu ích cho những người đối phó với tình huống tương tự.

4
Sandeep Kumar 2019-12-18 23:08.

Như nextXXX()các phương thức không đọc newline, ngoại trừ nextLine(). Chúng ta có thể bỏ qua newlinebất kỳ non-stringgiá trị nào sau khi đọc ( inttrong trường hợp này) bằng cách sử dụng scanner.skip()như sau:

Scanner sc = new Scanner(System.in);
int x = sc.nextInt();
sc.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
System.out.println(x);
double y = sc.nextDouble();
sc.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
System.out.println(y);
char z = sc.next().charAt(0);
sc.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
System.out.println(z);
String hello = sc.nextLine();
System.out.println(hello);
float tt = sc.nextFloat();
sc.skip("(\r\n|[\n\r\u2028\u2029\u0085])?");
System.out.println(tt);
2
Jeewantha Lahiru 2020-03-09 05:19.

Sử dụng mã này, nó sẽ khắc phục sự cố của bạn.

System.out.println("Enter numerical value");    
int option;
option = input.nextInt(); // Read numerical value from input
input.nextLine();
System.out.println("Enter 1st string"); 
String string1 = input.nextLine(); // Read 1st string (this is skipped)
System.out.println("Enter 2nd string");
String string2 = input.nextLine(); // Read 2nd string (this appears right after reading numerical value)
0
Tobias Johansson 2015-03-14 01:06.

Tại sao không sử dụng một Máy quét mới cho mỗi lần đọc? Như bên dưới. Với cách tiếp cận này, bạn sẽ không đối đầu với vấn đề của mình.

int i = new Scanner(System.in).nextInt();
0
Pallav Khare 2020-11-22 20:59.

Vấn đề là với phương thức input.nextInt () - nó chỉ đọc giá trị int. Vì vậy, khi bạn tiếp tục đọc với input.nextLine (), bạn sẽ nhận được phím Enter "\ n". Vì vậy, để bỏ qua điều này, bạn phải thêm input.nextLine (). Hy vọng điều này sẽ rõ ràng ngay bây giờ.

Hãy thử nó như thế:

System.out.print("Insert a number: ");
int number = input.nextInt();
input.nextLine(); // This line you have to add (It consumes the \n character)
System.out.print("Text1: ");
String text1 = input.nextLine();
System.out.print("Text2: ");
String text2 = input.nextLine();

Related questions

MORE COOL STUFF

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett chia tay chồng sau 3 ngày bên nhau và vẫn kết hôn với anh ấy 25 năm sau

Cate Blanchett đã bất chấp những lời khuyên hẹn hò điển hình khi cô gặp chồng mình.

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Tại sao Michael Sheen là một diễn viên phi lợi nhuận

Michael Sheen là một diễn viên phi lợi nhuận nhưng chính xác thì điều đó có nghĩa là gì?

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Hallmark Star Colin Egglesfield Các món ăn gây xúc động mạnh đối với người hâm mộ tại RomaDrama Live! [Loại trừ]

Ngôi sao của Hallmark Colin Egglesfield chia sẻ về những cuộc gặp gỡ với người hâm mộ ly kỳ tại RomaDrama Live! cộng với chương trình INSPIRE của anh ấy tại đại hội.

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Tại sao bạn không thể phát trực tuyến 'chương trình truyền hình phía Bắc'

Bạn sẽ phải phủi sạch đầu đĩa Blu-ray hoặc DVD để xem tại sao Northern Exposure trở thành một trong những chương trình nổi tiếng nhất của thập niên 90.

Where in the World Are You? Take our GeoGuesser Quiz

Where in the World Are You? Take our GeoGuesser Quiz

The world is a huge place, yet some GeoGuessr players know locations in mere seconds. Are you one of GeoGuessr's gifted elite? Take our quiz to find out!

8 công dụng tuyệt vời của Baking Soda và Giấm

8 công dụng tuyệt vời của Baking Soda và Giấm

Bạn biết đấy, hai sản phẩm này là nguồn điện để làm sạch, riêng chúng. Nhưng cùng với nhau, chúng có một loạt công dụng hoàn toàn khác.

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Hạn hán, biến đổi khí hậu đe dọa tương lai của thủy điện Hoa Kỳ

Thủy điện rất cần thiết cho lưới điện của Hoa Kỳ, nhưng nó chỉ tạo ra năng lượng khi có nước di chuyển. Bao nhiêu nhà máy thủy điện có thể gặp nguy hiểm khi các hồ và sông cạn kiệt?

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Quyên góp tóc của bạn để giúp giữ nước sạch của chúng tôi

Tóc tỉa từ các tiệm và các khoản quyên góp cá nhân có thể được tái sử dụng như những tấm thảm thấm dầu và giúp bảo vệ môi trường.

Xem đoạn giới thiệu cho bộ phim chuyển thể đầy khói lửa, có sự góp mặt của ngôi sao Edward Norton từ phim Motherless Brooklyn của Jonathan Lethem

Xem đoạn giới thiệu cho bộ phim chuyển thể đầy khói lửa, có sự góp mặt của ngôi sao Edward Norton từ phim Motherless Brooklyn của Jonathan Lethem

Edward Norton đã muốn đưa cuốn tiểu thuyết Motherless Brooklyn của Jonathan Lethem's Joycean 1999 lên màn ảnh kể từ khi nó được xuất bản. Bây giờ, 20 năm sau, một đoạn giới thiệu đã xuất hiện cho câu chuyện sôi nổi, đưa câu chuyện của Lethem trở lại những năm 1950 với rất nhiều gương mặt quen thuộc.

Cách dễ dàng chọn không tham gia trọng tài ràng buộc thẻ Apple

Cách dễ dàng chọn không tham gia trọng tài ràng buộc thẻ Apple

Có thích thú khi sử dụng Thẻ Apple mới của bạn không? Trước khi bạn bắt đầu chi tiêu, có một nhiệm vụ bổ sung cần xem xét: chọn không tham gia trọng tài ràng buộc. Bạn sẽ phát hiện ra các điều khoản trọng tài ràng buộc trong nhiều thỏa thuận tài chính vì nó giúp ngăn các ngân hàng và đối tác kinh doanh của họ không phải ra tòa.

Những người chơi Fortnite World Cup không ghi bàn có cảm giác hài hước về điều đó

Những người chơi Fortnite World Cup không ghi bàn có cảm giác hài hước về điều đó

Điểm số tại vòng chung kết Fortnite World Cup Solo hôm nay là rất lớn, với người chiến thắng Bugha ghi được nhiều hơn 26 điểm so với người về thứ hai là Psalm. Nhưng không phải ai cũng có thể giành chiến thắng: Bốn cầu thủ ra về với 0 điểm, nhưng — ít nhất là trên Twitter — họ là những người thể thao tốt về điều đó.

Báo cáo: Cánh cửa tuyển sinh có thể đã mở cho các ứng viên UCLA có mối quan hệ có ảnh hưởng

Báo cáo: Cánh cửa tuyển sinh có thể đã mở cho các ứng viên UCLA có mối quan hệ có ảnh hưởng

Huấn luyện viên trưởng của bộ môn thể dục dụng cụ UCLA Valorie Kondos-Field theo dõi Katelyn Ohashi thi đấu thăng bằng trong trận gặp Stanford tại Pauley Pavilion vào ngày 10 tháng 3 năm 2019 ở Los Angeles, California. Vụ bê bối gian lận tuyển sinh đại học tiết lộ các chi tiết của một quá trình chính thức hóa để đưa những đứa trẻ thất bại của các gia đình giàu có và nổi tiếng vào các trường đại học đáng tin cậy và danh tiếng, sử dụng một "cửa phụ" đắt tiền cho các bậc cha mẹ mà sự giàu có của họ khiến họ không có cơ hội. chỉ cần tài trợ cho một cánh mới trong khuôn viên trường.

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Forced to Borrow Paris' 'I Love Paris' Sweatshirt After 'Airline Loses All [My] Luggage'

Nicky Hilton Rothschild's luggage got lost, but luckily she has an incredible closet to shop: Sister Paris Hilton's!

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa

Kate Middleton dành một ngày bên bờ nước ở London, cùng với Jennifer Lopez, Julianne Hough và hơn thế nữa. Từ Hollywood đến New York và mọi nơi ở giữa, hãy xem các ngôi sao yêu thích của bạn đang làm gì!

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

17 tuổi bị đâm chết trong khi 4 người khác bị thương trong một cuộc tấn công bằng dao trên sông Wisconsin

Các nhà điều tra đang xem xét liệu nhóm và nghi phạm có biết nhau trước vụ tấn công hay không

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Thanh thiếu niên, Gia đình Florida Hội đồng quản trị trường học về Luật 'Không nói đồng tính': 'Buộc chúng tôi tự kiểm duyệt'

Vụ kiện, nêu tên một số học khu, lập luận rằng dự luật "Không nói đồng tính" được ban hành gần đây của Florida "có hiệu quả im lặng và xóa bỏ học sinh và gia đình LGBTQ +"

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Hãy tưởng tượng tạo ra một chiến lược nội dung thực sự CHUYỂN ĐỔI. Nó có thể.

Vào năm 2021, tôi khuyến khích bạn suy nghĩ lại mọi thứ bạn biết về khách hàng mà bạn phục vụ và những câu chuyện bạn kể cho họ. Lùi lại.

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Sự mất mát của voi ma mút đã mở ra trái tim tôi để yêu

Vào ngày sinh nhật thứ 9 của Felix The Cat, tôi nhớ về một trong những mất mát lớn nhất trong cuộc đời trưởng thành của tôi - Sophie của tôi vào năm 2013. Tôi đã viết bài luận này và chia sẻ nó trên nền tảng này một thời gian ngắn vào năm 2013.

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Khi bạn không thể trở thành người mà Internet muốn bạn trở thành

Tôi ghét từ "tàu đắm". Mọi người cảm thấy thoải mái trong la bàn đạo đức của riêng mình, và khi làm như vậy, họ thấy mình vượt qua sự phán xét.

Tầm nhìn đám mây phi tập trung của DFINITY Blockchain

Lưu ý của người biên tập: Bạn đang xem tài liệu lỗi thời từ blog DFINITY đang được bảo quản cho mục đích lưu trữ.

Tầm nhìn đám mây phi tập trung của DFINITY Blockchain

Bài đăng này khám phá tầm nhìn về đám mây phi tập trung của nhóm DFINITY và cách nó liên quan đến các nhà cung cấp blockchain truyền thống và đám mây hiện có như Amazon Web Services. Các minh chứng về công nghệ DFINITY được áp dụng bởi một mạng lưới quy mô lớn sẽ được thực hiện vào mùa thu năm 2017, sau đó sẽ được gây quỹ Chính cho quỹ hỗ trợ phi lợi nhuận, với mạng “đám mây mở” dự kiến ​​sẽ ra mắt vào đầu mùa hè năm 2018 .

Language