本文章轉(zhuǎn)載于搜狗測試
1寇蚊、.junit需要注意什么?什么時候用before什么時候用beforeClass Before注釋指示此方法必須在類中的每個測試之前執(zhí)行鲫骗,以便執(zhí)行測試所需的一些前提條件。
BeforeClass注釋指示所附加的靜態(tài)方法必須在類中的所有測試之前執(zhí)行一次。當測試方法共享計算expensive的設(shè)置(例如連接到數(shù)據(jù)庫)時倒源,會發(fā)生這種情況。
2句狼、有兩個字符串str1笋熬,str2,判斷str2是否在str1中腻菇,有的話有幾次胳螟?位置分別在什么地方昔馋?
3、linux 查詢一個log日志中前10行的命令 查詢一個log日志后10行的命令 查詢一個log中關(guān)鍵字error出現(xiàn)的次數(shù)糖耸,分別在哪一行 查詢當前運行java的進程 遠程拷貝的命令
前n行秘遏,head-n(行數(shù)) ***.log
后n行,tail-n(行數(shù)) ***.log
查看error?在log中的哪些行出現(xiàn)蔬捷,grep –rb "error" ***.log
查看error?在log中的出現(xiàn)次數(shù)垄提,grep –rb "error" ***.log -c
查看當前運行的java進程,ps -ef |grep java
遠程拷貝周拐,linux->linux:scp ***.conf
10.1.1.1:/search/odin/test/new.conf
Linux->windows,sz ***.conf
4铡俐、輸入一個矩陣,按照從外向里的順序依次打印出每一個數(shù)字妥粟。
例如审丘,輸入: ?12? ? ?3? ? ? ?4
5? ? ?6? ???7? ??? ?8
9? ? 10? ? 11? ? 12
13? ? 14? ? 15? ? 16
則依次打印出數(shù)字:1,2,3,4,8,12,16,15,14,13,9,5,6,7,11,10
算法分析:
假設(shè)這個矩陣的行數(shù)是rows,列數(shù)是columns,打印第一圈的左上角坐標是(0,0)勾给,第二圈左上角的坐標是(1,1)滩报,依次類推。我們注意到播急,左上角的坐標中行標和列標總是相等的脓钾,于是可以在矩陣中選取左上角為(start,start)的一圈作為我們分析的目標。
對于一個5X5的矩陣桩警,最后一圈只有一個數(shù)字可训,對應(yīng)的坐標為(2,2)。我們發(fā)現(xiàn)5>2x2.對于一個6X6的矩陣捶枢,最后一圈有4個數(shù)字握截,其左上角的坐標仍然是(2,2)。我們發(fā)現(xiàn)6>2x2依然成立烂叔。于是我們可以得出谨胞,讓循環(huán)的條件是columns>startX*2并且rows >startY*2.所以我們可以用如下循環(huán)來打印矩陣:
publicvoidPrintMatrixClockwisely(int[][]numbers,intcolumns,introws){
System.out.println("順時針打印的矩陣為:");
if(numbers==null||columns<=?0?||rows<=0)
return;
intstart=?0;
while(columns>start*2?&&rows>start*2){
PrintMatrixInCircle(numbers,columns,rows,start);
++start;
}
}
接著我們考慮如何打印矩陣的一圈的功能。我們可以把打印一圈分為四步:
第一步:從左到右打印一行
第二步:從上到下打印一列
第三步:從右到左打印一行
第四步:從下到上打印一列
每一步我們根據(jù)起始坐標和終止坐標用一個循環(huán)就能打印出一行或者一列蒜鸡。但仍需仔細分析打印每一步的前提條件胯努。第一步總是需要的,因為打印一圈至少需要有一步逢防;如果只有一行叶沛,那么就不需要第二步了,也就是說需要第二步的前提條件是終止行號大于起始行號胞四,需要第三步的前提條件是圈內(nèi)至少有兩行兩列恬汁,也就是說除了要求終止行號大于起始行號之外,還要求終止列號大于起始列號,同理氓侧,需要打印第四步的前提條件是至少有三行兩列脊另,因此要求終止行號比起始行號至少大2,同時終止列號大于起始列號约巷。
問題分析:
如何從鍵盤輸入一個二維矩陣:
首先需要輸入矩陣的行數(shù)和列數(shù)偎痛,即通過introws=scanner.nextInt(); 和intcolumns=scanner.nextInt();來定義輸入矩陣的行數(shù)和列數(shù);
其次独郎,定義一個二維矩陣踩麦,并用空格的方式輸入:
int[][]array=newint[rows][columns];
for(inti=?0;i
for(intj=?0;j
array[i][j]?=scanner.nextInt();
}
}
源程序:
[java]view plaincopy
/**************************************************************
*?Copyright?(c)?2016,
*?All?rights?reserved.
*?版?本?號:v1.0
*?題目描述:調(diào)整數(shù)組順序使奇數(shù)位于偶數(shù)前面
*??????????????題目:輸入一個整數(shù)數(shù)組,實現(xiàn)一個函數(shù)來調(diào)整該數(shù)組中數(shù)字的順序氓癌,使得所有奇數(shù)位于數(shù)組的前半部分谓谦,所有偶數(shù)位于數(shù)組的后半部分
*?輸入描述:請輸入矩陣的行數(shù)
*???????????4
*???????????請輸入矩陣的列數(shù):
*???????????5
*???????????請輸入一個矩陣,以空格隔開:
*???????????1?3?9?7?5?2?8?6?1?4?3?7?2?1?9?4?6?5?2?3
*?程序輸出:?輸入的矩陣為:
*???????????1,3,9,7,5,
*???????????2,8,6,1,4,
*???????????3,7,2,1,9,
*???????????4,6,5,2,3,
*???????????順時針打印的矩陣為:
*???????????1,3,9,7,5,4,9,3,2,5,6,4,3,2,8,6,1,1,2,7,
*?問題分析:?1.從鍵盤輸入一個矩陣
*???????????方法:首先要輸入矩陣的行數(shù)和列數(shù)贪婉,int?rows?=?scanner.nextInt();
*?????????????????然后定義一個二維矩陣反粥,并用空格的方式輸入:
*???????????????for(int?i?=?0;i?<?rows;?i++){
for(int?j?=?0;?j?<?columns;?j++){
array[i][j]?=?scanner.nextInt();
}
}
*
*?算法描述:
*?完成日期:2016-08-22
***************************************************************/
packageorg.marsguo.offerproject20;
importjava.util.Scanner;
classPrintMatrix{
/*打印矩陣函數(shù),通過遞歸調(diào)用來循環(huán)打印出矩陣的每一圈*/
publicvoidPrintMatrixClockwisely(int[][]?numbers,intcolumns,introws){
System.out.println("順時針打印的矩陣為:");
if(numbers?==null||?columns?<=0||?rows?<=0)
return;
intstart?=0;
while(columns?>?start*2&&?rows?>start*2){
PrintMatrixInCircle(numbers,?columns,?rows,start);
++start;
}
}
/*打印矩陣每一圈函數(shù)*/
publicvoidPrintMatrixInCircle(int[][]?numbers,intcolumns?,introws,intstart){
intendX?=?columns-1-start;
intendY?=?rows-1-start;
for(inti?=?start;i<=endX;++i){
intnumber?=?numbers[start][i];
printNumber(number);
}
if(start?<?endY){
for(inti?=?start?+1;?i?<=?endY;?++i){
intnumber?=?numbers[i][endX];
printNumber(number);
}
}
if(start?<?endX?&&start?
for(inti?=?endX?-1;i?>=?start;--i){
intnumber?=?numbers[endY][i];
printNumber(number);
}
}
if(start?<?endX?&&?start?<?endY?-1){
for(inti?=?endY-1;i?>=?start?+1;--i){
intnumber?=?numbers[i][start];
printNumber(number);
}
}
}
publicvoidprintNumber(intnumber){
System.out.print(number?+",");
}
}
publicclassPrintMatrixCircle?{
publicstaticvoidmain(String[]?args){
Scanner?scanner?=newScanner(System.in);
/*??從鍵盤輸入一個二維矩陣的方法:*/
System.out.println("請輸入矩陣的行數(shù)");
introws?=?scanner.nextInt();
System.out.println("請輸入矩陣的列數(shù):");
intcolumns?=?scanner.nextInt();
System.out.println("請輸入一個矩陣疲迂,以空格隔開:");
int[][]?array?=newint[rows][columns];
for(inti?=0;i?<?rows;?i++){
for(intj?=0;?j?<?columns;?j++){
array[i][j]?=?scanner.nextInt();
}
}
System.out.println("輸入的矩陣為:");
for(inti?=0;i?<?rows;?i++){
for(intj?=0;?j?<?columns;?j++){
System.out.print(array[i][j]?+",");
}
System.out.println();
}
PrintMatrix?printmatrix?=newPrintMatrix();
printmatrix.PrintMatrixClockwisely(array,?columns,?rows);
}
}
程序輸出: