0

我已经彻底研究了这个主题,包括这个网站上的问题和答案......这是我的基本代码:

import java.util.Scanner;  
class StringSplit {  
public static void main(String[] args)   
{  
    System.out.println("Enter String");    
    Scanner io = new Scanner(System.in);  
    String input = io.next();  
    String[] keywords = input.split(" ");  
    System.out.println("keywords" + keywords);      
}   

我的目标是能够输入一个像“hello, world, how, are, you, today”这样的字符串,并让程序把这个字符串分解成一个字符串数组,比如“[hello, world, how, are ,你,今天] ...但是每当我编译这段代码时,我都会得到这个输出:“keywords = [Ljava.lang.String;@43ef9157” 有人可以建议一种以我需要的方式输出数组的方法吗? ?

4

3 回答 3

3

当然:

System.out.println("keywords: " + Arrays.toString(keywords));

这不是导致您出现问题的拆分(尽管它可能没有按照您的意愿行事) - 事实是数组不会覆盖toString.

于 2012-08-07T00:25:59.357 回答
0

此代码应该可以工作:

String inputString = new String("hello, world, how, are, you, today");    
Scanner scn = new Scanner(inputString);
scn.useDelimiter(",");
ArrayList<String> words = new ArrayList<String>();
while (scn.hasNext()) {
   words.add(scn.next());
}

//To convert ArrayList to array
String[] keywords = new String[words.size()];
for (int i=0; i<words.size(); ++i) {
   keywords[i] = words.get(i);
}

useDelimiter 函数使用逗号分隔单词。希望这可以帮助!

于 2012-08-07T00:47:38.340 回答
0

您可以尝试使用 Java 的String.Split

只需给它一个正则表达式,它将匹配您想要的一个(或多个)分隔符,并将您的输出放入一个数组中。

至于输出,请使用 for 循环或 foreach 查找来检查数组的元素并打印它们。

你得到你现在得到的输出的原因是数组的 ToString() 方法不会打印数组内容(就像在 Python 中那样),而是打印对象的类型及其地址.

于 2012-08-07T00:29:14.130 回答