1. 程式人生 > >Java的基本程式設計結構(第二部分)

Java的基本程式設計結構(第二部分)

Java的基本程式設計結構

本文推薦具有C語言基礎的、耐心的同學進行閱讀,本文中省略了部分與C語言相同的知識點,想要深入學習Java的同學請點這裡 |->我是連結

本文分為三個部分,這是第二部分,作者歡迎糾錯,但拒絕人身攻擊。
我愛Python
單擊此處檢視第一部分 |->我還是連結

三、字串

1. 子串

String 類的 substring 方法可以從一個較大的字串中提取出一個子串。
例:

String greeting = "Hello";
String s = greeting.substring(0, 3);
//建立了一個由字元 “Hel” 組成的字串

注意:substring 的第二個引數是不想複製

的第一個位置,起始複製位置為0 。
substring 的工作方式有一個優點,易於計運算元串的長度。

2. 拼接

Java 允許使用 + 進行拼接。

String expletive = "Expletive";
String PG13 = "deleted";
String message = expletive + PG13;
//拼接成 Expletivedeleted

當將一個字串與一個非字串的值進行拼接時,後者被轉換成字串。

任何一個 Java 物件都可以轉換成字串。

這種特性通常用在輸出語句中,例:

 System.out.println("The answer is " + answer);
 //這是一條合法的語句,並且將會打印出所希望的結果。

如果需要把多個字串放在一起,用一個定界符分隔,可以使用靜態 join 方法:

String all = String.join("/","S","M","L","XL");

3. 不可變字串

由於 String 類沒有提供用於修改字串的方法,在進行修改時,只能將被修改字串的前某個部分提取出來,再拼接自己想要新增的部分。
由於不能修改字串中某個指定字元,String 類物件被稱為不可變字串,可以更改變數中儲存的字串,但是不能修改其中任何一個字元。

4. 檢測字串是否相等

可以使用 equals 方法檢測兩個字串是否相等。例:
s.equals(t)
如果字串 s 與字串 t 相等,則返回 true ;否則,返回 false。需要注意,s 與 t可以是字串變數,也可以是字串。
要想檢測兩個字串是否相等,而不區分大小寫,可以使用 equalsIgnoreCase 方法。
不能使用 == 運算子檢測兩個字串是否相等!這個運算子只能確定兩個字串是否放置在同一個位置上。

5. 空串與 Null 串

空串是長度為0的字串。可以呼叫以下程式碼檢查一個字串是否為空。

if (str.length() == 0)
//或者
if (str.equals(""))

空串是一個 Java 物件,有自己的串長度和內容。

Null是一個特殊的值,表示目前沒有任何物件與該變數關聯。可以呼叫以下程式碼檢查一個字串是否為 null 。

if (str == null)
//有時候要檢查一個字串既不是 null 也不為空串
if(str != null && str.length() != 0)

先檢查 null

6. 碼點與程式碼單元

Java 字串由 char 值序列組成。char 資料型別是一個採用 UTF-16 編碼表示 Unicode 碼點的程式碼單元。大多數的常用 Unicode 字元使用一個程式碼單元就可以表示,而輔助字元需要一對程式碼單元表示。

length 方法將返回採用 UTF-16 編碼表示的給定字串所需要的程式碼單元數量。
要想得到實際的長度即碼點數量,可以呼叫以下語句:

String greeting = "Hello";
int cpCount = greeting.codePointCount(0, greeting.length());

呼叫 s.charAt(n) 將返回位置 n 的程式碼單元,n 介於 0 ~ 長度-1 之間。
要想得到第 i 個碼點,可以使用下列語句:

int index = greeting.offsetByCodePoints(0, i);
int cp = greeting.codePointAt(index);

如果想遍歷一個字串,並且依次檢視每一個碼點,可以使用下列語句

int cp = sentence.codePointAt(i);
if (Character.isSupplementaryCodePoint(cp)) i += 2;
else i++;
//調換順序。可以進行回退操作

7. String API

四、輸入輸出

1. 讀取輸入

讀取標準輸入流時,首先需要構建一個 Scanner 物件,並與標準輸入流相關聯。

Scanner in = new Scanner(System.in);

構建之後,就可以使用 Scanner 類的各種方法實現輸入操作了。
在輸入時,空格依舊作為分隔符。

String name = in.nextLine();
//防止輸入行中含有空格影響輸入
String firstname = in.next();

int age = in.nextInt();
//讀取一個整數
double score = in.nextDouble();
//讀取一個浮點數

不要忘記呼叫 java.util 包

import java.util.*;
//寫在頂部

2. 格式化輸出

與C語言類似。。。

用於 printf 的轉換符

轉換符 型別 舉例
d 十進位制整數 180
x 十六進位制整數 9f
o 八進位制整數 237
f 定點浮點數 15.9
e 指數浮點數 1.59e+01
g 通用浮點數
a 十六進位制浮點數 0x1.fccdp3
s 字串 Hello
c 字元 H
b 布林 True
h 雜湊碼 42628b2
% 百分號 %
n 與平臺有關的行分隔符

還可以給出控制格式化輸出的各種標誌

標誌 目的
, 新增分組分隔符
#(對於 f 格式) 包含小數點
#(對於 x 或 0 格式) 新增字首 0x 或 0
$ 給定被格式化的引數索引。例如以某進位制列印第 n 個引數
< 格式化前面說明的數值

3. 檔案輸入與輸出

  • 檔案讀取
    用一個 File 物件構造一個 Scanner 物件,程式碼如下:
Scanner in = new Scanner(Paths.get("myfile.txt"),"UTF-8");
//如果檔名中包含一個反斜槓,絕對路徑中應該增加一個

構造一個 PrintWriter 物件。

PrintWriter out = new PrintWriter("myfile.txt","UTF-8");
//如果檔案不存在,建立該檔案

檔案定位:
當使用整合開發環境時,使用下列語句定位檔案位置:
String dir = System.getProperty("user.dir");

To be continued…

相關推薦

Java基本程式設計結構第二部分

Java的基本程式設計結構 本文推薦具有C語言基礎的、耐心的同學進行閱讀,本文中省略了部分與C語言相同的知識點,想要深入學習Java的同學請點這裡 |->我是連結 本文分為三個部分,這是第二部分,作者歡迎糾錯,但拒絕人身攻擊。 單擊此處檢視第一

java基本程式設計結構

《java 核心技術卷 Ι 基礎知識(第九版)》學習筆記 第三章 Java的基本程式設計結構 1 第一個應用程式 public class FirstTest{ public static void main(String[] args){ Sys

解析結構化異常處理(SEH)第二部分

ont .com 裏的 之間 地址 htm 完全 href 執行 書接上一篇:http://www.cnblogs.com/ONDragon/p/6855174.html 雖然這個異常回調機制很好,但它並不是一個完美的解決方案。對於稍微復雜一些的應用程序來說,僅用

JAVA效能優化調查結果第二部分

原文地址 原作者:Nikita Salnikov Tarnovski  譯者 嚴亮 校對:方騰飛(清英) 這是我們在2014年10月做的效能調優調查結果系列的第2部分,如果您還沒讀過第1部分。我推薦先讀第1部分。第2部分我們關注Java應用效能的監控問題。我們特別要嘗試弄清楚下面幾個問題:

Java從入門到失業》第三章:基礎語法及基本程式結構3.7:運算子小數二進位制、科學記數法、IEEE754標準

3.7.1.4浮點數運算        要討論浮點數運算,牽涉到的知識比較多,下面一點一點的來逐步展開。為了便於同時討論十進位制和二進位制數,我們做一個約定,我們把十進位制數簡寫為N10,把二進位制數簡寫為N2。 3.7.1.4.1小數的二進位制 &

Java從入門到失業》第三章:基礎語法及基本程式結構3.8:流程控制選擇語句、if-else語句、switch語句

3.8流程控制        到此為止,我們已經基本瞭解了Java的基礎語法,會定義不同型別的變數,會命名,會給變數賦值和運算等。接下來,我們需要學會流程控制方面的知識。 3.8.1選擇語句 3.8.1.1if-else語句   

Java從入門到失業》第三章:基礎語法及基本程式結構3.8:流程控制迴圈語句、while語句、for語句

3.8.2迴圈語句 3.8.2.1while語句        最近這些年買彩票只能去投注站買,早些年,筆者經常是在網上買。在網上買有個功能:追號。就是假如你想一直買同一組號碼,直到中大獎為止。你可以設定一個條件,比如中了頭獎就不繼續買了,如果沒有中頭獎,下一期繼續買同

Java從入門到失業》第三章:基礎語法及基本程式結構3.9:陣列陣列基本使用、陣列的迴圈、陣列拷貝、陣列排序、多維陣列

3.9陣列 3.9.1陣列基本使用        陣列,英文叫Array,是一種資料結構,是用來存放同一資料型別數值的集合。例如存放30個int型數值、存放100個double型數值等等。 我們知道使用一個變數,需要先宣告一個變數,例如:int a;

java基本類型數值範圍:浮點的底層表示定義,float計算快一些

方法 -1 att ieee754 符號位 無法 字符類 數值計算 小數 Java八種基本類型: 六種數字類型(四個整數型,兩個浮點型), 一種字符類型, 一種布爾型。 詳細例如以下 1、整數:包含int,short,byte,long

達夢數據庫第二部分

insert def 技術分享 lob 建立 pat com let ext 1.達夢數據庫創建表 達夢數據安裝完成之後,打開DM管理工具,可以進行數據庫的相關操作。可以通過新建查詢,在SQL命令窗口輸入sql語句,創建表,sql輸入完成之後,選擇sql進行執行,則會在表空

css3 選擇器 權重問題 第二部分

fff 博文 管理 color 沒有 計算 現在 多層 nbsp   這篇博文有關css的權重問題,我個人認為這是css知識中很重要的一個知識點。因為在開發的過程能中我們會經常遇到這種問題,特別是如果你使用框架的時候,有些框架的某些標簽有一些默認的樣式。所以我們可以通過增加

小結第二部分——Linux文件、目錄與磁盤格式

文本編輯 比較 認識 文本編輯器 參數 建議 系統設置 編輯器 文件   這一部分,我們一直建議使用文本模式來處理Linux的系統設置問題。   這是為什麽呢???   因為不但可以讓你容易了解到Linux的運行狀況,也比較容易了解整個設置的基本思想,更能保證你的修改可以順

第18章第二部分類加載器機制

.html htm sat mvc vmx 部分 cin ccf tun q4xctk馴匕夢蟹瞪偈http://docstore.docin.com/tbs2857l7jrtt姓臼迫掖瓢椅http://tushu.docin.com/sina_62672239085larm

網絡攻防第四次試驗第二部分

利用 tor shel nis net user 通過 cal 1-1 網絡攻防 任務三 通過漏洞獲取shell(合天平臺中做) 所有過程截圖寫博客 windows ms08067 漏洞利用 在平臺中獲取shell之後,繼續利用攻擊機器使用 net user user p

java-web學習筆記第二

直接 () destroy 垃圾回收 垃圾回收器 troy 鏈接 ems cse 第二章:Servlet基礎 1,創建Servlet有幾種方式?處理http請求最好使用哪種方式?  1>直接實現Servlet接口和它的所有方法;&emsp

[譯]ES6入門第二部分

原文戳這裡 這篇文章的第一部分出現在這裡。 我在那裡介紹了一些有趣的功能:) 我將在這篇文章中介紹的主題包括: 1、Promises 2、Async / Await Promises Promise是ES6中的一個有用功能。它們用於進行非同步操作,例如API請

[譯] 使用 Swift 的 iOS 設計模式第二部分

原文地址:Design Patterns on iOS using Swift – Part 2/2 原文作者:Lorenzo Boaro 譯文出自:掘金翻譯計劃 本文永久連結:github.com/xitu/gold-m… 譯者:iWeslie 校對者:swant

Java常用資料結構個人筆記

寫在前面: 樓主剛打完ACM徐州現場賽,也算是退役了,現在準備重新補一遍Java,之前一直用的是C++,所以我會結合C++來整理Java的資料結構,同時也便於理解。 那麼我將按照以下順序進行講解,感覺難度也是逐步提升 ArrayList、Vector和Lin

Unity Steam_VR 開發工具外掛 VRTK自帶案例分析第二部分

轉載至https://www.cnblogs.com/zerotoinfinity/p/6485556.html   DEMO 025_Controls_Overview 互動控制器: 真實版 UI 元素。所有型別的控制器都繼承自VRTK_Contro

資料整理——Oracle 18C技術架構第二部分

7. Large Pool 8. Database Buffer Cache 9. In-Memory Area 10. Database Data Files 11. Data