Excerpt from a brute force Rubik's Cube algorithm
when the program is searching all the for loops are nested for the brute search


That sounds like the first thing to fix. The brute force search should use recursion or an iterative approach which builds up a data structure (a stack or queue).


  then I have this test() which looks is responsible for testing out all the possible combinations of the nested for loop to find the the combination entered by the user of the program


Each of the six basic moves is a permutation. They could be represented as a two-dimensional array, and then a single method could apply an appropriate one by selecting the appropriate permutation from the array.

Moreover, the expanded moves are just iteration, and implementing them as iteration will give you much cleaner code.

public void applyMove(int move) {
    int iterations = (move % 3) + 1;
    int basicMove = move / 3;
    while (iterations-- &gt; 0) {
        applyBasicMove(basicMove);
    }
}

public void applyBasicMove(int basicMove) {
    int[] permutation = basicPermutations[basicMove];
    ...
}


If you were worried about performance (which you clearly aren't, given that you're using a brute force search across a group of about \$4 \times 10^{19}\$ elements), you could optimise slightly by pre-computing the powers \$F^2\$ and \$F^3\$ (i.e. \$F^{-1}\$, or Fi if you prefer).