Java字符串溢出不起作用
我的字符串如下所示Java字符串溢出不起作用,java,regex,Java,Regex,我的字符串如下所示 PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND 1 root 20 0 24416 2408 1360 S 0.0 0.2 0:00.88 init 10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs 171 root 0 -20 0
PID USER PR NI VIRT RES SHR S %CPU %MEM TIME+ COMMAND
1 root 20 0 24416 2408 1360 S 0.0 0.2 0:00.88 init
10 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kdevtmpfs
171 root 0 -20 0 0 0 S 0.0 0.0 0:00.00 mpt_poll_0
818 messageb 20 0 23940 1260 920 S 0.0 0.1 0:00.97 dbus-daemon
995 whoopsie 20 0 185m 4224 3000 S 0.0 0.4 0:00.06 whoopsie
1000 daemon 20 0 16908 156 0 S 0.0 0.0 0:00.19 atd
24043 root 20 0 570m 3952 2780 S 0.0 0.4 0:04.28 console-kit-dae
24110 root 20 0 182m 3032 2484 S 0.0 0.3 0:01.66 polkitd
26310 root 20 0 0 0 0 S 0.0 0.0 0:00.00 flush-8:0
30081 root 20 0 0 0 0 S 0.0 0.0 0:00.02 kworker/0:1
31381 root 20 0 0 0 0 S 0.0 0.0 0:00.00 kworker/0:2
31511 root 20 0 81900 3904 3048 S 0.0 0.4 0:00.03 sshd
31646 root 20 0 19228 1376 1060 R 0.0 0.1 0:00.00 top
现在我想拆分这个字符串,所以我使用了下面的java函数
for(int i = 0; i < mystring.length; i++){
String[] values = mystring.split("\\s+");
System.out.println(values[0]);
}
for(int i=0;i
但是当我检查
值[0]
时,它只显示31646而不显示其他值?我认为split中的正则表达式有问题,所以我也尝试了这个“\\t\\n\\x0B\\f\\r”
,但它不起作用。如果有人知道如何处理这个问题?那么我相信\s应该足以胜任这项工作。我建议你去掉加号。试试这个
String[] values = mystring.split("\\s+");
for(int i=0; i<mystring.length;i++){
System.out.println(values[0]);
}
String[]value=mystring.split(\\s+);
对于(inti=0;i我不知道您想要什么输出,但请尝试以下代码
String[] values = mystring.split("\\s+");
for(int i=0; i<values.length;i++)
{
System.out.println(values[i]);
}
String[]value=mystring.split(\\s+);
对于(inti=0;i您正在尝试打印我在下面代码中尝试的第一个元素,它工作得非常好
String mystring=“1111 2222 eeeeee www eeeeee”
String[]value=mystring.split(\\s+);
for(int i=0;i
为什么它在一个循环中?i
的意义是什么?您希望得到什么输出?!基于您希望分割字符串的内容?mystring.trim().split(\\s+);
因此前面的空格不会在[0]处导致空字符串
。你能告诉我你想要什么作为输出吗?你想要整个PID第一列的输出吗?你的代码错得很厉害。它甚至无法编译。修复它。“我不知道你想要什么输出”-那你怎么能想出一个建议的解决方案呢?@tbsalling Dom可能是从这个问题中猜出来的。这看起来更有用,但仍然无法判断这是否是OP真正想要的。
String[] values = mystring.split("\\s+");
String[][12] output;
for(int i = 0; i < (values.length)/12 ;i++)
{
for(int i = 0; j < 12; j++)
{
output[i][j] = values[i*12 + j];
}
}
for(int i = 0; i < output.length; i++)
{
for(int j = 0; j < 12; j++)
{
System.out.print(output[i][j] + " ");
}
System.out.println(" ");
}
String[] values = mystring.split("\\s+");
for(int i=0; i< values.length;i++){
System.out.println(values[i]);
}