在php中,可以使用关联数组处理状态名称列表及其缩写,如下所示:
<?php
$stateArray = array(
"ALABAMA"=>"AL",
"ALASKA"=>"AK",
// etc...
"WYOMING"=>"WY"
);
foreach ($stateArray as $stateName => $stateAbbreviation){
print "The abbreviation for $stateName is $stateAbbreviation.\n\n";
}
?>
Run Code Online (Sandbox Code Playgroud)
输出(保留密钥顺序):
The abbreviation for ALABAMA is AL.
The abbreviation for ALASKA is AK.
The abbreviation for WYOMING is WY.
Run Code Online (Sandbox Code Playgroud)
编辑:请注意,数组元素的顺序保留在php版本的输出中.使用HashMap的Java实现不保证元素的顺序.Python中的字典也不是.
这是如何在java和python中完成的?我只找到提供价值的方法,给定密钥,如python:
stateDict = {
"ALASKA": "AK",
"WYOMING": "WY",
}
for key in stateDict:
value = stateDict[key]
Run Code Online (Sandbox Code Playgroud)
编辑:基于答案,这是我在python中的解决方案,
# a list of two-tuples
stateList = [
('ALABAMA', 'AL'),
('ALASKA', 'AK'),
('WISCONSIN', 'WI'),
('WYOMING', 'WY'),
] …
Run Code Online (Sandbox Code Playgroud) 我正在尝试将一个引用添加到Apache HttpClient(httpclient-4.0-beta2)中的http帖子.
我发现了一些示例代码.代码有效,但我想知道是否有一种更简单,更直接的方式来添加引用,而不是使用(不名称)addRequestInterceptor,它似乎将(yikes!)内部类作为参数.
有问题的代码从下面开始"//添加referer标题".我是新手,这段代码正在做一些我不理解的事情.这真的是在我的http帖子中添加引用者的最简单方法吗?
谢谢你的任何指示.
// initialize request parameters
List<NameValuePair> formparams = new ArrayList<NameValuePair>();
formparams.add(new BasicNameValuePair("firstName", "John"));
formparams.add(new BasicNameValuePair("lastName", "Doe"));
// set up httppost
UrlEncodedFormEntity entity = new UrlEncodedFormEntity(formparams, "UTF-8");
HttpPost httppost = new HttpPost(submitUrl);
httppost.setEntity(entity);
// create httpclient
DefaultHttpClient httpclient = new DefaultHttpClient();
// add the referer header, is an inner class used here?
httpclient.addRequestInterceptor(new HttpRequestInterceptor()
{
public void process(final HttpRequest request,
final HttpContext context) throws HttpException, IOException
{
request.addHeader("Referer", referer);
}
});
// execute the request
HttpResponse response …
Run Code Online (Sandbox Code Playgroud) 编辑:我很想看看史蒂夫里德的AOP方法的反应.鼓励回答他的回答!
我是新手,在某些时候我意识到在程序执行期间知道变量的内容会很有帮助.所以我开始这样做:
编辑:修复此问题.曾经是:var +":"+ var,这是完全错误的.愚蠢的错字.
System.err.println ( "var: " + var );
Run Code Online (Sandbox Code Playgroud)
后来我才知道这是常见的做法.至少,调试器不可用或不需要的地方.
我使用基本的文本编辑器,每次需要调试变量时键入print语句都很烦人,所以我想,为什么不是这样的:
void dbug ( Object obj )
{
String variableName = obj.somehowGetVariableName();
String variableContents = obj.toString();
System.out.println ( variableName +": " + variableContents );
}
Run Code Online (Sandbox Code Playgroud)
但显然得到变量名称说起来容易做起来难.
我坚持:
System.err.println ( "var: " + var );
Run Code Online (Sandbox Code Playgroud)
或者有一个流行的速记版本?
我是正则表达式的新手,我很难看似简单的案例.
我需要将"foo bar"替换为"fubar",其中foo和bar之间有任何数量和种类的空白区域.
为了它的价值,我正在使用php的eregi_replace()来实现这一目标.
在此先感谢您的帮助.