2012-04-21 51 views
1

好吧,如果我有一個字符串輸入「3 6」在字符串中找到int

如何將這兩個int放在數組中?如果他們之間有多個空格呢?

比方說,我希望這些數字像{3,6} 這樣的數組是可能的嗎?謝謝

+6

你在用什麼語言? – Jack 2012-04-21 22:38:36

+0

我正在使用java – 2012-04-22 00:26:23

回答

3

試試這個,使用正則表達式來分割輸入字符串,每當一個或多個序列空間被找到,然後轉換導致String[]int[]

String numberString = " 1 2 34 7 "; 
String[] numbers = numberString.split("\\s+"); 
int[] ints = new int[numbers.length]; 
for (int i = 0; i < ints.length; i++) 
    ints[i] = Integer.parseInt(numbers[i]); 

現在ints數組包含的預期值:

System.out.println(Arrays.toString(ints)); 
> [1, 2, 34, 7] 
+1

非常感謝你!有用!!謝謝!!! – 2012-04-22 01:32:05

0
$string = "3 6 4 879"; 
preg_match_all('/\d+(?=\s*)/', $string, $arr); 

這是PHP的一種方式。

+0

但他使用java – 2012-04-22 01:01:38

+0

謝謝你的幫助! – 2012-04-22 01:32:38

0

可以用拆分用於您的問題,例如:

程序上空間分割[C#]

static void Main() 

{ 
string s = "1 3 2 7"; 
// 
// Split string on spaces. 
// ... This will separate all the words. 
// 
string[] words = s.Split(' '); 
foreach (string word in words) 
{ 
    Console.WriteLine(word); 
} 
} 

輸出

+0

我認爲他希望他們作爲整數,所以你需要解析這些字符串在C#中int。 – Jack 2012-04-21 22:52:46

+0

這個樣本很好,正確的分裂,並且不需要一個轉換器... – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2012-04-21 22:58:29

+0

但是@Leaf C.問題是你對我的樣本需要轉換。 – aaaaaaaaaaaaaaaaaaaaaaaaaaaaaa 2012-04-21 23:09:47

0
Scanner sc = new Scanner(mString); 
while (sc.hasNextInt()){ 
    mArrayList.add(sc.nextInt()) 
} 

然後,只需轉換的ArrayList回陣列。

+0

感謝您的幫助! – 2012-04-22 01:33:59