我需要我的Java程序采用如下字符串:
"This is a sample sentence."
Run Code Online (Sandbox Code Playgroud)
并将其转换为字符串数组,如:
{"this","is","a","sample","sentence"}
Run Code Online (Sandbox Code Playgroud)
没有句号或标点符号(最好).顺便说一下,字符串输入总是一个句子.
有没有一种简单的方法可以做到这一点,我没有看到?或者我们是否真的必须经常搜索空间并从空格之间的区域(这些是单词)创建新的字符串?
好吧,我一直潜水在低级Android编程(使用CodeSourcery工具链的本机C/C++)的浑水中.我在模拟器上试用了可执行文件,但它确实有效.我想在真实的设备上试一试.所以我插入了我的nexus并将文件推送到文件系统.然后我尝试执行二进制文件,我得到了一个权限错误.无论我如何安装它,或者我发送它的地方都没关系,我不是root,它不会让我执行它.有没有办法在非root手机上运行这样的程序?
我的应用程序从为我的应用程序指定的内部目录(/ data/data/com ...)播放音频资源文件.它似乎将文件下载到该位置没关系,setDataSource(String path)不会抛出任何异常,但MediaPlayer.prepare()会抛出IOException.相同的代码在SD卡上运行.为什么会这样?
编辑:
我们假设这是代码; 它比我的代码更简单,并抛出相同的异常:
package com.app.MediaPlayerTest;
public class MediaTest extends Activity {
MediaPlayer mp;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);
DownloadFiles();
MusicPlay();
}
public void DownloadFiles() {
//Downloads Files
}
public void MusicPlay()
{
try {
mp.setDataSource("/data/data/com.app.pronounce/winds.mp3");
} catch (IllegalArgumentException e1) {
e1.printStackTrace();
} catch (IllegalStateException e1) {
e1.printStackTrace();
} catch (IOException e1) {
e1.printStackTrace();
}
try {
mp.prepare();
} catch (IllegalStateException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
}
mp.setLooping(true);
mp.start();
} …Run Code Online (Sandbox Code Playgroud) 最好,我想将OpenGL ES 2.0用于我开始制作的新3D游戏.无论如何,我一直在Ubuntu PC上开发它(不是顶级的,但体面的)我在2010年买的.
Gdx.graphics.isGL20Available()返回false,我很确定我的驱动程序支持3.3.0.这是我从glxinfo收到的:
name of display: :0.0
display: :0 screen: 0
direct rendering: Yes
server glx vendor string: NVIDIA Corporation
server glx version string: 1.4
server glx extensions:
GLX_EXT_visual_info, GLX_EXT_visual_rating, GLX_SGIX_fbconfig,
GLX_SGIX_pbuffer, GLX_SGI_video_sync, GLX_SGI_swap_control,
GLX_EXT_swap_control, GLX_EXT_texture_from_pixmap, GLX_ARB_create_context,
GLX_ARB_create_context_profile, GLX_EXT_create_context_es2_profile,
GLX_ARB_create_context_robustness, GLX_ARB_multisample,
GLX_NV_float_buffer, GLX_ARB_fbconfig_float, GLX_EXT_framebuffer_sRGB
client glx vendor string: NVIDIA Corporation
client glx version string: 1.4
client glx extensions:
GLX_ARB_get_proc_address, GLX_ARB_multisample, GLX_EXT_visual_info,
GLX_EXT_visual_rating, GLX_EXT_import_context, GLX_SGI_video_sync,
GLX_NV_swap_group, GLX_NV_video_out, GLX_SGIX_fbconfig, GLX_SGIX_pbuffer,
GLX_SGI_swap_control, GLX_EXT_swap_control, GLX_ARB_create_context,
GLX_ARB_create_context_profile, GLX_NV_float_buffer,
GLX_ARB_fbconfig_float, GLX_EXT_fbconfig_packed_float,
GLX_EXT_texture_from_pixmap, GLX_EXT_framebuffer_sRGB,
GLX_NV_present_video, …Run Code Online (Sandbox Code Playgroud) 我知道添加android:theme="@android:style/Theme.NoTitleBar"到清单会删除标题,但是我该怎么做才能删除通知栏?
确定包含布尔值的向量(通常优化为位数组)是否仅包含真值的最快方法是什么?对于小向量,我认为将向量与另一个仅存储真实值的向量进行比较可能不是一个坏主意(假设我们知道两个向量的大小)。
我有一个大的排序整数向量.我需要快速查找并从数组中删除八个值.
例如,矢量a包括元素
{1, 4, 7, 15, 16, 19, 24, 26, 31, 53, 67, 68, 73, 75, 77, 82}
Run Code Online (Sandbox Code Playgroud)
向量b包括八个值
{4, 15, 19, 24, 67, 68, 73, 75}
Run Code Online (Sandbox Code Playgroud)
完成操作后,矢量a应该具有
{1, 7, 16, 26, 31, 53, 77, 82}
Run Code Online (Sandbox Code Playgroud)
我的旧解决方案很慢:
for (vector<int>::iterator val = b.begin(); val != b.end(); val++)
a.erase(remove(a.begin(), a.end(), *val), a.end());
Run Code Online (Sandbox Code Playgroud)
有更快的方法吗?
编辑:
实际上,我的"A"向量比我的"B"向量大很多.也许最好通过二分搜索搜索单个元素并删除它们?
EDIT2:
也许矢量不是这种操作的好容器.我不认为我可以使用forward_list,因为我无法用C++ 11编译.也许我可以使用不同的容器,然后将结果复制到矢量中?
以下代码显示了一个慢慢旋转并显示的圆环:
package com.objloader.example;
import ...
public class ObjLoaderProg implements ApplicationListener{
String torus;
Mesh model;
private PerspectiveCamera camera;
@Override
public void create() {
InputStream stream=null;
try {
stream = new FileInputStream(Gdx.files.internal("data/torus.obj").path());
} catch (FileNotFoundException e) {
e.printStackTrace();
}
model = ObjLoader.loadObj(stream, true);
Gdx.gl.glEnable(GL10.GL_DEPTH_TEST);
Gdx.gl10.glTranslatef(0.0f,0.0f,-3.0f);
}
@Override
public void dispose() {
}
@Override
public void pause() {
}
protected int lastTouchX;
protected int lastTouchY;
protected float rotateZ=0.01f;
protected float increment=0.01f;
@Override
public void render() {
Gdx.gl.glClearColor(0.0f, 0.0f, 0.0f, 1.0f);
Gdx.gl.glClear(GL10.GL_COLOR_BUFFER_BIT | GL10.GL_DEPTH_BUFFER_BIT); …Run Code Online (Sandbox Code Playgroud) 我不明白MutexGuard内部代码块中的"where" .互斥锁被锁定和解开,产生一个MutexGuard.不知何故,这段代码设法取消引用,MutexGuard然后可变地借用该对象.MutexGuard去哪儿了?而且,令人困惑的是,这种解除引用不能被替换deref_mut.为什么?
use std::sync::Mutex;
fn main() {
let x = Mutex::new(Vec::new());
{
let y: &mut Vec<_> = &mut *x.lock().unwrap();
y.push(3);
println!("{:?}, {:?}", x, y);
}
let z = &mut *x.lock().unwrap();
println!("{:?}, {:?}", x, z);
}
Run Code Online (Sandbox Code Playgroud) 每当我将设备侧向转动时,我的应用程序中的所有内容也会转动并变得扭曲.如何将其锁定为垂直?
您究竟如何拦截Android中OpenGL ES游戏的触摸屏事件?此外,如果游戏是3D,你怎么知道用户是否触摸了背景中的物体?谢谢.
android ×6
c++ ×2
java ×2
libgdx ×2
opengl-es ×2
stl ×2
vector ×2
3d ×1
android-ndk ×1
arm ×1
bitarray ×1
boolean ×1
codesourcery ×1
file-io ×1
glx ×1
ioexception ×1
lwjgl ×1
media-player ×1
mutability ×1
mutex ×1
prepare ×1
resources ×1
root ×1
rust ×1
sorted ×1
spaces ×1
string ×1
touchscreen ×1
words ×1