簡體   English   中英

沒有空格的Java字符串拆分

[英]Java string split without space

我正在嘗試拆分一些用戶輸入。 輸入的形式為a1 b2 c3 d4。 對於每個輸入(例如; a1),如何將其拆分為“a”和“1”?

我熟悉字符串拆分功能,但是我指定什么作為分隔符,或者甚至可以這樣做?

謝謝。

你可以使用String #substring()

String a1 = "a1"
String firstLetterStr = a1.substring(0,1);
String secondLetterStr = a1.substirng(1,a1.length());

同樣的,

String c31 = "c31"
String firstLetterStr = c31.substring(0,1);
String secondLetterStr = c31.substirng(1,c31.length());

如果要一般性地拆分字符串(而不是嘗試按其他答案計算字符數),您仍然可以使用String.split(),但必須使用正則表達式 (注意:當你有像a1,a2,aaa333等字符串時,這個答案會有用)

String ALPHA = "\p{Alpha}";
String NUMERIC = "\d";

String test1 = "a1";
String test2 = "aa22";

ArrayList<String> alpha = new ArrayList();
ArrayList<String> numeric = new ArrayList();

alpha.add(test1.split(ALPHA));
numeric.add(test1.split(NUMERIC));
alpha.add(test2.split(ALPHA));
numeric.add(test2.split(NUMERIC));

此時,alpha數組將包含字符串的alpha部分,數字數組將包含數字部分。 (注意:我實際上沒有編譯它來測試它是否可行,但它應該給你基本的想法。)

這真的取決於你以后如何使用數據,但除了split("")或通過索引訪問單個字符之外,另一種分割成單個字符的方法是toCharArray() - 它只是將字符串分解為數組人物......

是的,有可能,你可以使用split("");

后使用分割用戶輸入到個人令牌split(" ")則可以使用分割每個令牌插入字符split("")使用空字符串作為分隔符)。

將空格拆分為一個字符串數組,然后使用String.charAt(0)String.charAt(1)拉出單個字符

我建議只迭代三個角色。

for(int i = 0; i < str.length(); i += 3) {
     char theLetter = str.charAt(i);
     char theNumber = str.charAt(i + 1);
     // Do something
}

編輯:如果它可以是多個字母或數字,請使用正則表達式:

([a-z]+)(\d+)

信息: http//www.regular-expressions.info/java.html

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM