我有以下字符串作为输入:
"2.0,3.00,-4.0,0.00,-0.00,0.03,2.01,0.001,-0.03,101"
Run Code Online (Sandbox Code Playgroud)
最终输出将如下:
"2,3,-4,0,0,.03,2.01,.001,-.03,101"
Run Code Online (Sandbox Code Playgroud)
即所有前导和尾随零将被删除,正/负零点将会更加简单为零.
我们可以通过首先拆分字符串并为每个部分使用Regex来实现这一点.但我的字符串大小超过10000.
我们怎样才能实现这个目标Regex?
编辑:
答案分析:
我用String测试了所有答案,"0.00,-0.00,00.00,-00.00,40.00,-40.00,4.0,-4.0,4.01,-4.01,04.01,-04.01,004.04,-004.04,0004.040,-0004.040,101,.40,-.40,0.40,-0.40"并且WiktorStribiżew的答案通过了所有的测试用例.(见这里:https://regex101.com/r/tS8hE3/9)大部分案例都通过了其他答案,但并非全部.
如何单元测试android SensorEvent和MotionEvent类?
我需要MotionEvent为单元测试创建一个对象.(我们有模拟创建自定义对象后可以使用的obtain方法)MotionEventMotionEvent
对于MotionEvent类,我试过Mockito像:
MotionEvent Motionevent = Mockito.mock(MotionEvent.class);
Run Code Online (Sandbox Code Playgroud)
但是我在Android Studio上遇到错误:
java.lang.RuntimeException:
Method obtain in android.view.MotionEvent not mocked. See https://sites.google.com/a/android.com/tools/tech-docs/unit-testing-support for details.
at android.view.MotionEvent.obtain(MotionEvent.java)
Run Code Online (Sandbox Code Playgroud)
关于此错误提到的网站,我已添加
testOptions {
unitTests.returnDefaultValues = true
}
Run Code Online (Sandbox Code Playgroud)
在build.gradle上,但我仍然得到同样的错误.有什么想法吗?
目前以下是我的应用程序的布局:
LinearLayout
----Button
----ScrollView
----RelativeLayout
----EditText
Run Code Online (Sandbox Code Playgroud)
我在所有这些之上创建了一个透明的 LinearLayout,实现了 OnTouchListener 并在 OnTouch() 内部,返回 false。因此,所有控件都移动到子级下方。但是在 LinearLayout 上,我无法处理 ACTION_MOVE 操作,因为此布局不消耗 MotionEvent 对象。有什么方法可以检测父视图和子视图中的所有触摸事件吗?
我们可以通过在上下文中使用getWindow()获取每个Activity的Touch事件:
//set Window.Callback for getting touch event
final Window window = context.getWindow();
final Window.Callback localCallback = window.getCallback();
window.setCallback(new MyWindowCallback(localCallback));
Run Code Online (Sandbox Code Playgroud)
如何在不使用上下文的情况下实现它?
有没有办法删除这个回调(因为窗口类没有任何删除回调方法?