我已经彻底研究过这个主题,包括本网站上的问题和答案.... 这是我的基本代码:
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,你今天好吗]... 但每当我编译此代码时,我得到此输出: “keywords = [Ljava.lang.String; @ 43ef9157” 任何人都可以建议一种方式,以我需要的方式输出数组?
答案 0 :(得分:3)
不确定
System.out.println("keywords: " + Arrays.toString(keywords));
这不是导致问题的分裂(虽然它可能没有做你想要的) - 这是数组不会覆盖toString
的事实。
答案 1 :(得分:0)
您可以尝试使用Java的String.Split:
只需给它一个正则表达式,它将匹配你想要的一个(或多个)分界符,并将你的输出放到一个数组中。
对于输出,使用for循环或foreach外观来遍历数组的元素并打印它们。
你得到你现在得到的输出的原因是数组的ToString()方法不打印数组内容(就像在Python中那样)但是打印对象的类型及其地址。
答案 2 :(得分: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函数使用逗号分隔单词。希望这有帮助!