1.根據(jù)你輸出的語句:首行為文件名,"+"其余內(nèi)容為文件內(nèi)容,以空行結(jié)尾。按Ctrl+c組合鍵結(jié)束輸入",你是想按Ctrl+c就退出程序結(jié)束輸入,但是你的程序并沒有定義當(dāng)按下Ctrl+c鍵的響應(yīng)。所以你一直輸入內(nèi)容是沒辦法結(jié)束程序的。你只有手動停止編譯器停止程序。
成都創(chuàng)新互聯(lián)主營港北網(wǎng)站建設(shè)的網(wǎng)絡(luò)公司,主營網(wǎng)站建設(shè)方案,app軟件開發(fā),港北h5成都微信小程序搭建,港北網(wǎng)站營銷推廣歡迎港北等地區(qū)企業(yè)咨詢
2.你沒有指定fileName文件的類型,也沒生成位置,那么在你對應(yīng)的工程路徑下生成一個缺省的文件,名字為你第一次輸入的fileName,內(nèi)容為第二次輸入的內(nèi)容,你可以用記事本打開,看到輸入的內(nèi)容。
程序沒有錯,只是沒有完成你想要的功能而已!
代碼為:
Scanner?scanner=new?Scanner(System.in);
System.out.println("請輸入圓的半徑:");
int?r=Integer.parseInt(scanner.next());?//獲取半徑
System.out.println("圓的面積為:"+Math.PI*r*r);
擴展資料:
java所具有的特性:
1.簡單性
Java看起來設(shè)計得很像C++,但是為了使語言小和容易熟悉,設(shè)計者們把C++語言中許多可用的特征去掉了,這些特征是一般程序員很少使用的。例如,Java不支持goto語句,代之以提供break和continue語句以及異常處理。Java還剔除了C++的操作符過載(overload)和多繼承特征,并且不使用主文件,免去了預(yù)處理程序。
因為Java沒有結(jié)構(gòu),數(shù)組和串都是對象,所以不需要指針。Java能夠自動處理對象的引用和間接引用,實現(xiàn)自動的無用單元收集,使用戶不必為存儲管理問題煩惱,能更多的時間和精力花在研發(fā)上。
2.面向?qū)ο?/p>
Java是一個面向?qū)ο蟮恼Z言。對程序員來說,這意味著要注意應(yīng)中的數(shù)據(jù)和操縱數(shù)據(jù)的方法(method),而不是嚴格地用過程來思考。在一個面向?qū)ο蟮南到y(tǒng)中,類(class)是數(shù)據(jù)和操作數(shù)據(jù)的方法的集合。
數(shù)據(jù)和方法一起描述對象(object)的狀態(tài)和行為。每一對象是其狀態(tài)和行為的封裝。類是按一定體系和層次安排的,使得子類可以從超類繼承行為。在這個類層次體系中有一個根類,它是具有一般行為的類。Java程序是用類來組織的。
Java還包括一個類的擴展集合,分別組成各種程序包(Package),用戶可以在自己的程序中使用。例如,Java提供產(chǎn)生圖形用戶接口部件的類(java.awt包),這里awt是抽象窗口工具集(abstractwindowingtoolkit)的縮寫,處理輸入輸出的類(java.io包)和支持網(wǎng)絡(luò)功能的類(java.net包)。
3.分布性
Java設(shè)計成支持在網(wǎng)絡(luò)上應(yīng)用,它是分布式語言。Java既支持各種層次的網(wǎng)絡(luò)連接,又以Socket類支持可靠的流(stream)網(wǎng)絡(luò)連接,所以用戶可以產(chǎn)生分布式的客戶機和服務(wù)器。
網(wǎng)絡(luò)變成軟件應(yīng)用的分布運載工具。Java程序只要編寫一次,就可到處運行。
4.編譯和解釋性
Java編譯程序生成字節(jié)碼(byte-code),而不是通常的機器碼。Java字節(jié)碼提供對體系結(jié)構(gòu)中性的目標文件格式,代碼設(shè)計成可有效地傳送程序到多個平臺。Java程序可以在任何實現(xiàn)了Java解釋程序和運行系統(tǒng)(run-timesystem)的系統(tǒng)上運行。
在一個解釋性的環(huán)境中,程序開發(fā)的標準“鏈接”階段大大消失了。如果說Java還有一個鏈接階段,它只是把新類裝進環(huán)境的過程,它是增量式的、輕量級的過程。因此,Java支持快速原型和容易試驗,它將導(dǎo)致快速程序開發(fā)。這是一個與傳統(tǒng)的、耗時的“編譯、鏈接和測試”形成鮮明對比的精巧的開發(fā)過程。
5.穩(wěn)健性
Java原來是用作編寫消費類家用電子產(chǎn)品軟件的語言,所以它是被設(shè)計成寫高可靠和穩(wěn)健軟件的。Java消除了某些編程錯誤,使得用它寫可靠軟件相當(dāng)容易。
Java是一個強類型語言,它允許擴展編譯時檢查潛在類型不匹配問題的功能。Java要求顯式的方法聲明,它不支持C風(fēng)格的隱式聲明。這些嚴格的要求保證編譯程序能捕捉調(diào)用錯誤,這就導(dǎo)致更可靠的程序。
可靠性方面最重要的增強之一是Java的存儲模型。Java不支持指針,它消除重寫存儲和訛誤數(shù)據(jù)的可能性。類似地,Java自動的“無用單元收集”預(yù)防存儲漏泄和其它有關(guān)動態(tài)存儲分配和解除分配的有害錯誤。Java解釋程序也執(zhí)行許多運行時的檢查,諸如驗證所有數(shù)組和串訪問是否在界限之內(nèi)。
異常處理是Java中使得程序更穩(wěn)健的另一個特征。異常是某種類似于錯誤的異常條件出現(xiàn)的信號。使用try/catch/finally語句,程序員可以找到出錯的處理代碼,這就簡化了出錯處理和恢復(fù)的任務(wù)。
6.安全性
Java的存儲分配模型是它防御惡意代碼的主要方法之一。Java沒有指針,所以程序員不能得到隱蔽起來的內(nèi)幕和偽造指針去指向存儲器
。更重要的是,Java編譯程序不處理存儲安排決策,所以程序員不能通過查看聲明去猜測類的實際存儲安排。編譯的Java代碼中的存儲引用在運行時由Java解釋程序決定實際存儲地址。
Java運行系統(tǒng)使用字節(jié)碼驗證過程來保證裝載到網(wǎng)絡(luò)上的代碼不違背任何Java語言限制。這個安全機制部分包括類如何從網(wǎng)上裝載。例如,裝載的類是放在分開的名字空間而不是局部類,預(yù)防惡意的小應(yīng)用程序用它自己的版本來代替標準Java類。
7.可移植性
Java使得語言聲明不依賴于實現(xiàn)的方面。例如,Java顯式說明每個基本數(shù)據(jù)類型的大小和它的運算行為(這些數(shù)據(jù)類型由Java語法描述)。
Java環(huán)境本身對新的硬件平臺和操作系統(tǒng)是可移植的。Java編譯程序也用Java編寫,而Java運行系統(tǒng)用ANSIC語言編寫。
8.高性能
Java是一種先編譯后解釋的語言,所以它不如全編譯性語言快。但是有些情況下性能是很要緊的,為了支持這些情況,Java設(shè)計者制作了“及時”編譯程序,它能在運行時把Java字節(jié)碼翻譯成特定CPU(中央處理器)的機器代碼,也就是實現(xiàn)全編譯了。
Java字節(jié)碼格式設(shè)計時考慮到這些“及時”編譯程序的需要,所以生成機器代碼的過程相當(dāng)簡單,它能產(chǎn)生相當(dāng)好的代碼。
9.多線索性
Java是多線索語言,它提供支持多線索的執(zhí)行(也稱為輕便過程),能處理不同任務(wù),使具有線索的程序設(shè)計很容易。Java的lang包提供一個Thread類,它支持開始線索、運行線索、停止線索和檢查線索狀態(tài)的方法。
Java的線索支持也包括一組同步原語。這些原語是基于監(jiān)督程序和條件變量風(fēng)范,由C.A.R.Haore開發(fā)的廣泛使用的同步化方案。用關(guān)鍵詞synchronized,程序員可以說明某些方法在一個類中不能并發(fā)地運行。這些方法在監(jiān)督程序控制之下,確保變量維持在一個一致的狀態(tài)。
10.動態(tài)性
Java語言設(shè)計成適應(yīng)于變化的環(huán)境,它是一個動態(tài)的語言。例如,Java中的類是根據(jù)需要載入的,甚至有些是通過網(wǎng)絡(luò)獲取的。
參考資料:百度百科-Java
按照你的要求編寫的Java程序如下
import java.util.Scanner;
public class S{
public static void main(String[] args){
int n=5;
int[] a=new int[n];
System.out.print("請輸入"+n+"個正整數(shù):");
Scanner sc=new Scanner(System.in);
for(int i=0;in;i++){
a[i]=sc.nextInt();
}
System.out.print("其中的偶數(shù)為:");
for(int i=0;in;i++){
if(a[i]%2==0){
System.out.print(a[i]+" ");
}
}
}
}
第一種:
public class ShuRu{
public static void main(String arg[]){
System.out.println(arg[1]);
}
}
第二種:
import java.util.Scanner;
public class ShuRu{
public static void main(String arg[]){
Scanner in=new Scanner(System.in);
String str=in.next();
System.out.println(str);
}
}
直接輸入 a,b
輸出為 a,bstem.in.read();?
擴展資料:
有輸入就有輸出,輸出語句為
Java中的輸出語句有以下四種:
1、System.out.println(1111);//換行打印
2、System.out.print(1111);//不換行打印
3、System.out.write(2222);//字節(jié)輸出
4、System.out.printf("%+8.3f\n", 3.14);//按格式輸出
注:
System.out.println(); 是最常用的輸出語句,它會把括號里的內(nèi)容轉(zhuǎn)換成字符串輸出到輸出窗口(控制臺),并且換行,當(dāng)輸出的是一個基本數(shù)據(jù)類型時,會自動轉(zhuǎn)換成字符串,如果輸出的是一個對象,會自動調(diào)用對象的toString();方法,將返回值輸出到控制臺
System.out.print(); 與第一個很相似,區(qū)別就是上一個輸出后會換行,而這個命令輸出后并不換行。
System.out.printf(); 這個方法延續(xù)了C語言的輸出方式,通過格式化文本和參數(shù)列表輸出。
常用的輸入語句是:
輸入字符串:new Scanner(System.in).next();
輸入整數(shù):new Scanner(System.in).nextInt();
輸入小數(shù):new Scanner(System.in).nextDouble();
常用的輸出語句:
換行輸出: System.out.println(變量或字符串);
非換行輸出: System.out.print(變量或字符串);
換行輸出錯誤提示(默認是紅字):System.err.println(變量或字符串);
不換行輸出錯誤提示(默認是紅字): System.err.print(變量或字符串));
你的程序的問題,一個是數(shù)組arr1還沒有輸入完全就比較是否有重復(fù)字符串,是比較不出來的,二是字符串比較內(nèi)容是否相同要用equals函數(shù)而不是用雙等號==.
你的Java程序我?guī)湍愀暮昧?你看看吧.
package?找重復(fù);
public?class?string?{
public?static?void?main(String[]?args)?{
System.out.println("請輸入5個字符串:");
String[]?arr1=new?String[5];
java.util.Scanner?sc=new?java.util.Scanner(System.in);
for(int?i=0;iarr1.length;i++){
arr1[i]=sc.nextLine();
}
for(int?i=0;iarr1.length;i++){
for(int?j=i+1;jarr1.length;j++){
if(arr1[i].equals(arr1[j])){
System.out.println(arr1[i]);
}
}
}
}
}
運行結(jié)果
請輸入5個字符串:
we
are
the
world
the
the