一、如何把一段逗号分割的字符串转换成一个数组?
如:String orgStr="The,java,is,weixin,subject";
方法1. 用正则表达式
代码大概为:String [] result = orgStr.split(“,”);
方法2.用 StingTokenizer
代码为:
package com.weixin;
import java.util.Map;
import org.apache.struts2.dispatcher.SessionMap;
import org.apache.struts2.interceptor.ApplicationAware;
import org.apache.struts2.interceptor.SessionAware;
public class UserAction implements SessionAware,ApplicationAware{
private String username;
public void setUsername(String username) {
this.username = username;
}
private Map
session;
private Map
application;
public void setApplication(Map
arg0) {
this.application=arg0;
}
public void setSession(Map
arg0) {
this.session=arg0;
}
public String execute(){
//将用户名放到session中
session.put("username", username);
//人数加1,判断人数是否为空
Integer count=(Integer)application.get("count");
if(count==null){
count=0;
}
count++;
//将人数放入application中
application.put("count", count);
return "login_success";
}
public String logout(){
//人数减1
Integer count=(Integer) application.get("count");
if(count!=null&&count>0){
count--;
application.put("count", count);
}
((SessionMap)session).invalidate();
return "logout_success";
}
}
struts.xml
/com/jsps/Login.jsp
/com/jsps/Information.jsp
/com/jsps/TestActionContextJsp.jsp
/com/jsps/TestActionContextJsp.jsp
/com/jsps/LoginSuccess.jsp
/index.jsp
index.jsp
<%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'index.jsp' starting page
登陆
<%
application.setAttribute("date", new Date());
%>
Test ActionContext
Test Aware
LoginSuccess.jsp
<%@ page language="java" import="java.util.*" pageEncoding="UTF-8"%>
<%
String path = request.getContextPath();
String basePath = request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";
%>
My JSP 'LoginSuccess.jsp' starting page
welcome:${sessionScope.username}
当前在线人数:${applicationScope.count}
退出
二、StringTokenizer类拓展
StringTokenizer类:根据自定义字符为分界符进行拆分,并将结果进行封装提供对应方法进行遍历取值,StringTokenizer 方法不区分标识符、数和带引号的字符串,它们也不识别并跳过注释;该方法用途类似于split方法,只是对结果进行了封装;
帮助文档上对此进行了说明:
StringTokenizer 是出于兼容性的原因而被保留的遗留类(虽然在新代码中并不鼓励使用它)。建议所有寻求此功能的人使用 String 的 split 方法或 java.util.regex 包。
构造器:
· public StringTokenizer(String str,String delim,boolean returnTokens);
· public StringTokenizer(String str,String delim);
· public StringTokenizer(String str);
其中,str为需分析的字符串,delim为定界符,定界符里面的任何一个字符都是分隔符,如"+-*/ "表示碰到"+-*/ "中的任何一个都认为是到达了分隔符了。
常用的方法有:
· public boolean hasMoreTokens(); //判断字符串中是含还有token
· public String nextToken(); //StringTokenizer对象中的下一个token。
· public String nextToken(String delim) //delim为新的定界符
public boolean hasMoreElements ()
StringTokenizer (Java Platform SE 6)
public Object nextElement () //除返回结果类型外,其返回与 nextToken 方法相同的值