There are many ways of doing this. The most straightforward one is to use a label to break out of several loops at once:
 outer: for(i = 1; i <= n; ++i) {    // a label is a word followed by :
  inner: for(j = 1; j <= i; ++j) {   // you can declare labels without using them
    System.out.print(number);
    ++number;
      if(number >= n){
        break outer;                 // break inner would be equivalent to what you had
      }
   }
  System.out.println();
}
However, these break statements with labels look suspiciously similar to gotos, and gotos are frowned upon. A more teacher-friendly version would be to use a boolean flag, and check the flag in each loop:
boolean finished = false; 
for(i = 1; i <= n && ! finished; ++i) {
  for(j = 1; j <= i && ! finished; ++j) {
    System.out.print(number);
    ++number;
      if (number >= n) {
         finished = true;  // no need to break - loops condition will now be false
      }
   }
  System.out.println();
}
Note that this introduces an extra newline, which you generally want to make sure that whatever you print next appears on a different line.
Another option is to simply complicate your initial condition, without any flags:
 for(i = 1; i <= n && number < n; ++i) {
  for(j = 1; j <= i; ++j) {
    System.out.print(number);
    ++number;
  }
  System.out.println();
}
I would recommend, for readability purposes, version 2. Additionally, I would write it as follows:
boolean finished = false; 
for(int i = 0; i < n && ! finished; ++i) {
  for(j = 0; j < i && ! finished; ++j) {    
    System.out.print(number++);
    if (number >= n) {
      finished = true;
    }
  }
  System.out.println();
}
The key differences are using 0 to n-1 counting to repeat something n times (most programmers are very accustomed to that, instead of counting from 1 to n), and defining loop variables within the for, so that trying to use them outside of their loops is an error. This helps to avoid accidental reuse of variables.