java中DataInputStream使用構(gòu)造參數(shù),使用bufferreader,輸入?yún)?shù)system.in就可以讀取控制臺(tái)的字符串,如下代碼:
成都創(chuàng)新互聯(lián)專注于冀州網(wǎng)站建設(shè)服務(wù)及定制,我們擁有豐富的企業(yè)做網(wǎng)站經(jīng)驗(yàn)。 熱誠(chéng)為您提供冀州營(yíng)銷型網(wǎng)站建設(shè),冀州網(wǎng)站制作、冀州網(wǎng)頁(yè)設(shè)計(jì)、冀州網(wǎng)站官網(wǎng)定制、小程序設(shè)計(jì)服務(wù),打造冀州網(wǎng)絡(luò)公司原創(chuàng)品牌,更為您提供冀州網(wǎng)站排名全網(wǎng)營(yíng)銷落地服務(wù)。
import?java.io.BufferedInputStream;
import?java.io.DataInputStream;
import?java.io.IOException;
public?class?ceshi?{
public?static?void?main(String[]?args)?{
DataInputStream?in?=?new?DataInputStream(new?BufferedInputStream(
System.in));//新建DateInputSteam,接收控制臺(tái)的信息
String?s;
try?{
while?((s?=?in.readLine()).length()?!=?0)
System.out.println(s);//讀取控制臺(tái)信息,并打印出來(lái)
//?An?empty?line?terminates?the?program
}?catch?(IOException?e)?{
e.printStackTrace();
}
}
}
運(yùn)行結(jié)果如下:
不知道是什么語(yǔ)言
不過(guò)都可以寫函數(shù)判斷,做個(gè)函數(shù),輸入字符串,輸出修改后的字符串
然后函數(shù)里有一個(gè)字符串變量,用來(lái)存輸出的結(jié)果
判斷輸入串的長(zhǎng)度,從1到這個(gè)長(zhǎng)度循環(huán),沒(méi)循環(huán)一次,輸入的這個(gè)字符串就截掉以為,這樣每個(gè)循環(huán)里面就可以都取這個(gè)串的第一位了,判斷這位是不是數(shù)字,有的語(yǔ)言有函數(shù)可以判斷,如果沒(méi)有,那直接判斷這個(gè)字符值是不是等于
-
9
當(dāng)中的任何一個(gè),麻煩點(diǎn)。如果不是數(shù)字,則把這個(gè)字符賦給新定義的變量,這個(gè)變量是一直累加的。最后循環(huán)結(jié)束,這個(gè)變量就是最終輸出的值了。
要求1中要去掉所有數(shù)字,要求2、3中又要保留數(shù)字并進(jìn)行翻譯,所以我兩種都寫了。具體代碼為:
public class Test {
public static void main(String args[]) {
String str = "0as2sw$#3Six";
System.out.println("原字符串:[" + str + "]");
System.out.println("");
//不翻譯數(shù)字
SetString set1 = new LinkedHashSet();
for (String s : str.split("[^A-Z a-z]")) {
if (s.length() 0) {
set1.add(s);
}
}
System.out.println("不翻譯數(shù)字的結(jié)果:" + set1);
System.out.println("");
?/*因?yàn)橛忠コ亲帜负蛿?shù)字(以下簡(jiǎn)稱去雜),又要將去雜結(jié)果分離成數(shù)字和字母,再翻譯數(shù)字,整個(gè)流程挺麻煩的,索性在去雜之前,先將數(shù)字翻譯成英文,為了使數(shù)字翻譯后的英文和原字符串的字母分開(kāi),在數(shù)字左右添加占位符#,這樣的話,形如:[a1b2c3]就會(huì)被處理為:[a#one#b#two#c#three#],這樣去雜后,就會(huì)被分割為:[a,one,b,two,c,three]了。這里定義了枚舉值English,用于實(shí)現(xiàn)0-9的英文映射,[10]不好映射成[ten],現(xiàn)在只能映射為[one,zero],如果按照題干非要映射為ten的話你再考慮考慮吧*/
for (English english : English.values()) {
str = str.replaceAll(english.getNum() + "", "#" + english.name() + "#");
}
System.out.println("將數(shù)字替換為“占位符 + 英文 + 占位符”的中間結(jié)果:[" + str + "]");
System.out.println("");
?//翻譯數(shù)字的結(jié)果
SetString set2 = new LinkedHashSet();
for (String s : str.split("[^A-Za-z]")) {
if (s.length() 0 ?) {
//判斷當(dāng)前字符串是否是數(shù)字的英文,如果不是,就把它拆成單字母
if (mappingEnglish(s)){
set2.add(s);
}else {
for (char c : s.toCharArray()) {
set2.add(String.valueOf(c));
}
}
}
}
System.out.println("翻譯數(shù)字的結(jié)果:" + set2);
}
//判斷當(dāng)前字符串是否是數(shù)字的英文
private static boolean mappingEnglish(String str) {
for (English english : English.values()) {
str = str.toLowerCase();
if (english.name().equals(str)) {
return true;
}
}
return false;
}
enum English {
zero(0),
one(1),
two(2),
three(3),
four(4),
five(5),
six(6),
seven(7),
eight(8),
nine(9);
private int num;
public int getNum() {
return num;
}
English(int num) {
this.num = num;
}
}
}
我怕發(fā)出來(lái)代碼又?jǐn)D在一起,順便也截個(gè)圖:
8-21行
22-50行
51-61行
62-85行完
運(yùn)行結(jié)果:
可以用substring方法來(lái)實(shí)現(xiàn)。
參考代碼:
String?str?=?"hello?word!";
System.out.println(str.substring(1,4));
System.out.println(str.substring(3,5));
System.out.println(str.substring(0,4));
將得到結(jié)果為:
ell
lo?
hell
如果startIndex和endIndex其中有越界的將會(huì)拋出越界異常。
String.substring(int?beginIndex,?int?endIndex)
參數(shù):
beginIndex 開(kāi)始位置索引
endIndex ? ?結(jié)束位置索引
返回:
從beginIndex位置到endIndex位置內(nèi)的字符串
本文題目:java字符串讀取代碼 java 獲取字符串編碼
當(dāng)前路徑:http://chinadenli.net/article6/dogidig.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供網(wǎng)站制作、電子商務(wù)、動(dòng)態(tài)網(wǎng)站、網(wǎng)站策劃、全網(wǎng)營(yíng)銷推廣、網(wǎng)站營(yíng)銷
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來(lái)源: 創(chuàng)新互聯(lián)