04-05-24, 09:38
例如我有字符串CN=menglianjing,OU=ShanDong,O=ShanDong University.....
我只需要CN=menglianjing,请问怎么把它截取出来?谢谢了
menglianjing
04-05-24, 09:51
for instance
package intercept;
import java.io.*;
import java.net.*;
import javax.net.ssl.*;
import java.lang.*;
public class Intercept
{
public Intercept()
{
System.out.println("Intercept String");
}
private void getParms()
{
String str = "CN=mengliangjing,后面省略";
System.out.println(....);
}
public static void main(String args[])
{
new Intercept().getParms();
}
}
这是一个大概雏形,现在你可以看见一个String的字符串,而我只需要CN=menglianjing然后打印出来,请问怎么截取?谢谢了
:) :)
String spStr[] = str.split(",");
System.out.println(spStr[0]);
据说这样可以
menglianjing
04-05-24, 10:07
谢谢!可以,但是不完美,for instance 如果我要截取俩 怎么办?就是这个意思
String str = "CN=menglianjing,qterwfgadsgfdagdsagfsdagfsad,CN=menglianjing"看见两个CN=了吗?如果我要两个都截取出来,怎么做?谢谢了
String spStr[] = str.split(",");
for(int i = 0; i < spStr.length; i++)
if( spStr[i].indexOf("CN=") >= 0 )
System.out.println(spStr[i]);
这样行不?
menglianjing
04-05-24, 10:25
:)高手!
String str = "asdasd_=123+123" ;
String split = "_+=";
StringTokenizer token = new StringTokenizer(str, split);
while (token.hasMoreTokens()) {
System.out.println(token.nextToken());
}
java.lang.String和StringBuffer中提供了非常丰富的字符串操作方法,建议有空多看看.
java.util.StringTokenizer
int countTokens()
Calculates the number of times that this tokenizer's nextToken method can be called before it generates an exception.
boolean hasMoreElements()
Returns the same value as the hasMoreTokens method.
boolean hasMoreTokens()
Tests if there are more tokens available from this tokenizer's string.
Object nextElement()
Returns the same value as the nextToken method, except that its declared return value is Object rather than String.
String nextToken()
Returns the next token from this string tokenizer.
String nextToken(String delim)
Returns the next token in this string tokenizer's string.
StringTokenizer和String都可以解决这样的字符分解问题,但是那位高手能讲讲它们的特点!让我的感觉是StringTokenizer更专一些!
import java.util.regex.*;
public class StringCutting {
public static void main(String[] args) {
try {
String src = "CN=menglianjing,OU=ShanDong,O=ShanDong University";
java.util.regex.Pattern patt = Pattern.compile("(CN=//w*).*");
System.out.println(patt.pattern());
Matcher mat = patt.matcher(src);
System.out.println(mat.matches());
System.out.println(mat.group(1));
System.out.println(mat.groupCount());
} catch (RuntimeException e) {
// TODO Auto-generated catch block
System.out.println (e.getMessage());
}
}
}
最初由 fangshun 发表
StringTokenizer和String都可以解决这样的字符分解问题,但是那位高手能讲讲它们的特点!让我的感觉是StringTokenizer更专一些!
String的split方法,把全部都分解开后,放入string[]中。
1。占用内存。String的本身的问题。
2。没有什么控制的方法,比如究竟分解出东西没?这个就不知道了。
StringTokenizer,就是专门解决这些麻烦的。所以当然StringTokernizer专业一点。:)。
非常感谢,但是为什么String本身会占用内存,有什么考证吗?
最初由 fangshun 发表
非常感谢,但是为什么String本身会占用内存,有什么考证吗?
That's obvious, because it return an array.
最初由 LYOO 发表
1.4已经支持正则表达式了吧
不错。