Java 我应该如何分离一个字符串?

Java 我应该如何分离一个字符串?,java,Java,例如,我有一个字符串“1234”,我想把它分成两个字符串“12”,“34”。有什么方法可以做到这一点吗?如何使用?您可以使用以下功能: "1234".substring(0, 2); "1234".substring(2, 4); 它包含一个开始索引和一个结束索引,返回两个索引之间的子字符串。您可能正在查找尝试查看javadocs,子字符串听起来很有用;-) 如果您想要一般性地解决这个问题(假设您想要将字符串一分为二),那么扩展Luviere建议的内容 String aString = "12

例如,我有一个字符串“1234”,我想把它分成两个字符串“12”,“34”。有什么方法可以做到这一点吗?如何使用?

您可以使用以下功能:

"1234".substring(0, 2);
"1234".substring(2, 4);

它包含一个开始索引和一个结束索引,返回两个索引之间的子字符串。

您可能正在查找

尝试查看javadocs,子字符串听起来很有用;-)

如果您想要一般性地解决这个问题(假设您想要将字符串一分为二),那么扩展Luviere建议的内容

String aString = "1234";
int length = aString.length();
System.out.println(aString.substring(0,length / 2));
System.out.println(aString.substring(length / 2,aString.size());

差不多吧。(当然,这不会处理奇数长度的字符串,但我会让您自己决定。)

每当您必须处理字符串时,请查看string类上声明的静态方法

事实上,String.substring()不能将字符串分成两部分进行“断开”,但它会返回原始字符串的一部分,您可以使用两个子字符串操作组合断开要求,就像Luviere在另一个答案中解释的那样


通常使用String.split()将字符串拆分为多个部分,但使用子字符串可以更轻松地解决问题。

使用字符串拆分方法

比如说

  String s = "1234";
  s.Split(".{2}.{2}" = {"12", 23"}  // a String array

您还可以使用字符串标记器。如果有要拆分字符串的字符

例如,“Stack Overflow”,可以使用空格(“”)拆分为两个标记“Stack”和“Overflow”


如果您的问题实际上是“我应该使用什么分隔符来划分字符串中的各个值”,那么答案是,只要它不会出现在您的正常输入数据中,就无所谓了。例如,在大多数情况下可以使用“^ |*”作为分隔符,因为它不太可能同时出现在正常的输入数据中


如果您的问题是“如何拆分由已知分隔符分隔的字符串”,您可以将
StringTokenizer
string.split()
与正则表达式一起使用,或者将
string.indexOf()
string.substring()

结合使用“…看看静态方法…”substring()和split()不是静态的。Johanna,我并不是有意无礼(真的!),但看看你过去一个多月来的问题清单,我不完全确定你是否会花时间看Javadoc,甚至是基本的Java引用。我向您保证,到目前为止,学习Java(或任何语言)的最佳方法是阅读文档并边做边学。我完全同意。人们不断地花时间帮助我,这也让我感到惊讶。在过去的14个帖子中,Johanna没有一次接受过回复。海报所做的只是把想法尝试一下,如果没有效果,再贴一个问题,请人调试代码。当然,问题不在于乔安娜,她足够聪明,可以让其他人做这项工作。问题在于论坛中的人总是用填鸭式的回答。这是对现实生活中同事支持的一次很好的培训。不幸的是,这往往是不称职的同事、顾问和供应商的“代码”。我试图鼓励学习Java或其他语言的人提出问题并做他们自己的研究,因为学习如何学习很重要。不幸的是,有时很难区分那些试图学习的人和那些仅仅把你当作代码猴子的人。我相当肯定,在这一点上,我们可以把Johanna归为使用SO社区为她学习的人。虽然为了提升你在这里的知名度而直接提出这样的问题真的很好,但你真的不应该向那些甚至没有尝试自己先找到答案的人提供答案。总有一天,你和我可能不得不维护或支持他们产生的“代码”。请参阅@delfuego和@camickr对原始问题的评论。@ken我通过提问和回答问题的方式学到了一些东西。当我问一些问题时,我会非常恼火,而我的回答通常是“你自己找吧”这是一种回答——我通常会问两种类型的问题:一种是我真的很感兴趣,但即使经过广泛的搜索也找不到答案的问题,另一种是即使你将我连接到fck捐赠机,我也不会给出fck的问题——但我无论如何都要做这件事,所以我寻求社区帮助。这就是为什么我理解这样的问题,并试图对这一点有所帮助。Luviere,我发现很难想象像你这样的人和这里的代表会在发布你的问题之前忘记打开该死的Javadocs,所以——这就是我们要做的区别。看看Johanna的发帖记录,让我/我们相信,除了点击“发布新问题”页面的书签,在框中输入一个半可理解的jibberish字符串,她实际上在做任何努力,点击提交…我不会试图让你相信任何事情,但我会做同样的事情,如果是关于一个数学问题。我讨厌数学,我真的讨厌,我在高中的时候经常在数学试卷上作弊,这样我就可以拿到D——所以如果我在工作中解决一道数学题,我也会付出同样的努力,我会在论坛上或其他地方公然问这个该死的问题。我个人知道有些人对Java和我对数学都有同样的不满,因此我不怪他们。-编译错误:方法拆分必须以小写开始,…-逻辑错误:导致空字符串,regex
{2}.{2}
是分隔符,而不是正在搜索的内容。