我有文字和数字为5(即,长度的文件12000,11153等).我想用一个附加所有这些数字0.因此11153变得111530.这可能在Notepad ++中吗?
我知道我可以使用以下正则表达式查找所有数字:[0-9]{5}但是如何用相同的数字替换这些数字,再添加一个0?
在替换盒中,我尝试了以下方法:
[0-9]{5}0- 字面意思,所以11153被替换[0-9]{5}0\10 - 我读到了某个\1可以参加比赛的地方,但似乎没有用.这将取代11153使用0\00- 基于这个SO答案,我看到我需要使用\0而不是\1.它仍然无法正常工作.这将取代11153使用 So, I've got the feeling I'm close with the \1或\0,但不够接近.
我刚刚将C#Web API组件(Web API模型和控制器)添加到localhost现有项目的副本中.
应该从Android应用程序调用此Web API的GET方法.在这个链接中,它解释了我应该10.0.2.2在Android模拟器上使用它来获取计算机127.0.0.1.
当我这样做时,它在Android应用程序中对我的HttpRequest不起作用.所以我去了Android浏览器并直接键入它,它也没有用.
然后我尝试使用127.0.0.1而不是localhost在我的计算机的浏览器中,并且由于一些未知的原因它也不起作用..是否有不同的localhost和127.0.0.1?我一直认为他们是同一个人.
这是400 error我在使用时获得的127.0.0.1:

并与localhost一切工作正常.
所以,我的问题:我如何使用localhost的仿真器(或者,如何解决使用时,我得到的错误127.0.0.1,而不是localhost)?另外,我想知道的区别localhost和127.0.0.1,因为我一直以为他们是一样的.
在此先感谢您的回复.
编辑1:
在这个stackoverflow问题中,他们提到了System32Windows中的主机文件.我打开用记事本文件++(如管理员),并注释掉线127.0.0.1 localhost和::1 localhost.但不幸的是,这并没有解决问题,我仍然不能127.0.0.1在我的电脑上用作替代品localhost.可能是因为我的问题是相反的(我可以访问localhost,但不是127.0.0.1,而不是相反.)
编辑2:
在这个stackoverflow回答中,它解释了localhost和之间的区别127.0.0.1是:
127.0.0.1 在某些编程语言中,将更容易被识别为IP.localhost可以更改为计算机主机文件中的另一个IP(我的编辑1中提到的文件).所有我现在都明白了这些差异,我只是不明白为什么我的localhost正在工作,但127.0.0.1不是.. …
我有Uint8Array实例包含某些文件的二进制数据.
我想将数据发送到服务器,在那里它将被反序列化为byte [].
但是,如果我发送Uint8Array,我有反序列化错误.
所以,我想将它转换为Array,因为Array很好地反序列化了.
我按如下方式做到:
function uint8ArrayToArray(uint8Array) {
var array = [];
for (var i = 0; i < uint8Array.byteLength; i++) {
array[i] = uint8Array[i];
}
return array;
}
Run Code Online (Sandbox Code Playgroud)
此功能工作正常,但对大文件效率不高.
问题:是否有更有效的方法来转换Uint8Array - > Array?
我知道如何尝试,捕获和最终工作(大多数情况下),但我有一件事我想知道:在try-catch-finally之后返回语句会发生什么,而我们已经在try(或者catch)中返回了)?
例如:
public boolean someMethod(){
boolean finished = false;
try{
// do something
return true;
}
catch(someException e){
// do something
}
finally{
// do something
}
return finished;
}
Run Code Online (Sandbox Code Playgroud)
假设在尝试中没有出错,所以我们返回true.然后我们将进入最后我们做的事情,比如关闭连接,然后呢?
在我们在finally中做了一些东西之后,方法会停止吗(所以方法在try中返回true),或者方法会在finally之后继续,导致返回完成(这是假的)?
在此先感谢您的回复.
当前程序的输出是"奇怪的".但两个变量共享相同的参考.为什么第二次和第三次比较不正确?
Integer a;
Integer b;
a = new Integer(2);
b = a;
if(b == a) {
System.out.println("Strange");
}
a++;
if(b == a) {
System.out.println("Stranger");
}
a--;
if(b == a) {
System.out.println("Strangest");
}
Run Code Online (Sandbox Code Playgroud)
输出: Strange
从Android 4.2.2开始,就可以在Android模拟器上运行Google服务.我目前正在制作Android应用并制作测试项目,看看我是否可以通过Google+登录并注销工作.
我遵循了以下教程:http: //www.androidhive.info/2014/02/android-login-with-google-plus-account-1/
使用以下教程/网站中的额外信息:
这生成了以下代码:
AndroidManifest.xml中:
<?xml version="1.0" encoding="utf-8"?>
<manifest xmlns:android="http://schemas.android.com/apk/res/android"
package="com.example.testproject_gmaillogin"
android:versionCode="1"
android:versionName="1.0" >
<uses-sdk
android:minSdkVersion="9"
android:targetSdkVersion="19" />
<uses-permission android:name="android.permission.INTERNET" />
<uses-permission android:name="android.permission.GET_ACCOUNTS" />
<uses-permission android:name="android.permission.USE_CREDENTIALS" />
<application
android:allowBackup="true"
android:icon="@drawable/ic_launcher"
android:label="@string/app_name"
android:theme="@style/AppTheme" >
<meta-data android:name="com.google.android.gms.version" android:value="@integer/google_play_services_version" />
<activity
android:name="com.example.testproject_gmaillogin.MainActivity"
android:label="@string/app_name" >
<intent-filter>
<action android:name="android.intent.action.MAIN" />
<category android:name="android.intent.category.LAUNCHER" />
</intent-filter>
</activity>
</application>
</manifest>
Run Code Online (Sandbox Code Playgroud)
strings.xml中:
<?xml version="1.0" encoding="utf-8"?>
<resources>
<string name="app_name">TestProject_GmailLogin</string>
<string name="action_settings">Settings</string>
<string name="profile_pic_description">Google Profile Picture</string>
<string name="btn_logout_from_google">Logout from Google</string>
<string name="btn_revoke_access">Revoke Access</string>
</resources> …Run Code Online (Sandbox Code Playgroud) 标题可能有点模糊,但这是我所拥有的(在私有化代码中):
包含一些字段的类,包括BigDecimal和Date:
class MyObj{
private java.math.BigDecimal percentage;
private java.util.Date date;
// Some more irrelevant fields
// Getters and Setters
}
Run Code Online (Sandbox Code Playgroud)
在另一个类中,我有一个这些对象的列表(即java.util.List<MyObj> myList).我现在想要的是一个Java 8流来检查列表是否符合我的验证器的日期和百分比的正确顺序.
例如,以下列表将是真实的:
[ MyObj { percentage = 25, date = 01-01-2018 },
MyObj { percentage = 50, date = 01-02-2018 },
MyObj { percentage = 100, date = 15-04-2019 } ]
Run Code Online (Sandbox Code Playgroud)
但是这个列表是假的,因为百分比的顺序不正确:
[ MyObj { percentage = 25, date = 01-01-2018 },
MyObj { percentage = 20, date = 01-02-2018 },
MyObj { percentage = 100, …Run Code Online (Sandbox Code Playgroud) I've added a Google log-in to my Android App (steps can be found at edit 3 of this post). Everything works as it should, but I'd like to make some small adjustments. With the current code found at edit 3, you are automatically logged in every time you start the app, without the Log-in Screen. I want to disable this, since the app will be used on a tablet at work, where a different employee should Login to the app …
android login google-api-client google-plus google-play-services
我有一个格式的字符串:
row1col1 row1col2
row2col1 row2col2
row3col1 row3col2
Run Code Online (Sandbox Code Playgroud)
等等...
我想提取每个项目并构建一个具有以下属性的对象数组:
new MyObject(row1col1, row1col2);
Run Code Online (Sandbox Code Playgroud)
我是Java 8和Streams的新手,我想知道如何在没有循环的情况下实现这一点.
通常我会使用a String.split('\n')将行累积到String数组中
然后是一个循环,我将在空格分隔符上再次分割每一行,并使用两个元素的结果数组(row1col1 row1col2)构建我的对象,直到没有更多行要处理.
像这样:
String sausage = "row1col1 row1col2\nrow2col1 row2col2\nrow3col1 row3col2";
String[] rows = sausage.split("\n");
for (String row : rows) {
String[] objectData = u.split("\\s+");
MyObject myObject = new MyObject(objectData[0], objectData[1]);
myObjectList.add(myObject);
}
Run Code Online (Sandbox Code Playgroud)
谁能解释我如何用流来实现同样的目标,那背后的机制是什么让我这样做呢?
在增加元素数量时,这甚至是一种有效的思维方式,因为从我看到的所有示例中,流程都集中在过滤,收集或通常给出一组元素检索应用一些标准的次要集合.
我喜欢用Java编写代码高尔夫(即使Java方式太冗长而不具竞争力),它正在以尽可能少的字节完成一定的挑战.在我的一个答案中,我有以下代码:
for(var p:"A4;B8;CU;EM;EW;E3;G6;G9;I1;L7;NZ;O0;R2;S5".split(";"))
Run Code Online (Sandbox Code Playgroud)
在我们将它转换为带有的字符串数组后,它基本上遍历2-char字符串.split.有人建议我可以把它打到这个而不是节省4个字节:
for(var p:"A4B8CUEMEWE3G6G9I1L7NZO0R2S5".split("(?<=\\G..)"))
Run Code Online (Sandbox Code Playgroud)
功能仍然相同.它循环遍历2个字符串.
但是,我们都没有100%确定这是如何工作的,因此这个问题.
我知道的:
我知道.split("(?<= ... )")用于拆分,但保留尾随分隔符.
还有一种方法可以将前导分隔符或分隔符保留为分隔项:
"a;b;c;d".split("(?<=;)") // Results in ["a;", "b;", "c;", "d"]
"a;b;c;d".split("(?=;)") // Results in ["a", ";b", ";c", ";d"]
"a;b;c;d".split("((?<=;)|(?=;))") // Results in ["a", ";", "b", ";", "c", ";", "d"]
Run Code Online (Sandbox Code Playgroud)
我知道\G用来在遇到不匹配后停止.
编辑:\G用于指示最后一个匹配结束的位置(或第一次运行的字符串的开头).修正了@SebastianProske的定义.
int count = 0;
java.util.regex.Pattern pattern = java.util.regex.Pattern.compile("match,");
java.util.regex.Matcher matcher = pattern.matcher("match,match,match,blabla,match,match,");
while(matcher.find())
count++;
System.out.println(count); // Results in 5
count = 0;
pattern = java.util.regex.Pattern.compile("\\Gmatch,");
matcher = …Run Code Online (Sandbox Code Playgroud)