在我看来,string.length()每次调用所需的时间比访问变量要长得多.
我通过Intent启动Google Navigation:
private static final int GOOGLE_NAV = 5;
Intent intent = new Intent(android.content.Intent.ACTION_VIEW,
Uri.parse("google.navigation:q= some + address"));
startActivityForResult(intent,GOOGLE_NAV);
Run Code Online (Sandbox Code Playgroud)
然后我检查用户是否通过LocationListener到达了他的目的地.如果用户已到达,我想关闭Google导航活动.
if(hasArrived())
{
finishActivity(GOOGLE_NAV);
}
Run Code Online (Sandbox Code Playgroud)
但是,我的代码似乎不起作用.
我正在尝试访问遵循模式的多个字符串的某个部分.
这是我正在尝试做的一个例子.
String s = "Hello my name is Joe";
if(Pattern.matches(s,"Hello my name is ([\\w]*)"))
{
System.out.println("Name entered: $1");
}
Run Code Online (Sandbox Code Playgroud)
但是,我的代码永远不会进入"if-statement"
我正在阅读一篇文章,说Java字符串不是完全不可变的.但是,在文章修改字符串的示例代码中,它调用string.toUpperCase().toCharArray(),它返回一个新字符串.那么,如果你调用toUpperCase(),那么通过更改字符串的过程是什么目的呢?这是代码:
public static void toUpperCase(String orig)
{
try
{
Field stringValue = String.class.getDeclaredField("value");
stringValue.setAccessible(true);
stringValue.set(orig, orig.toUpperCase().toCharArray());
}
catch (Exception ex){}
}
Run Code Online (Sandbox Code Playgroud)
另外,我注意到string.toUpperCase()本身不起作用.它需要是string.toUpperCase().toCharArray().是否有一个原因?