小编Iai*_*oat的帖子

Java相当于python的String lstrip()?

我想删除字符串中的前导空格,但不删除尾随空格 - 所以trim()将不起作用.在python中我使用lstrip(),但我不确定Java中是否存在等价物.

举个例子

"    foobar    "
Run Code Online (Sandbox Code Playgroud)

应该成为

"foobar    "
Run Code Online (Sandbox Code Playgroud)

如果可能的话,我也想避免使用正则表达式.

在Java中是否有内置函数,或者我是否必须创建自己的方法来执行此操作?(以及我能达到的最短路径)

java string trim

4
推荐指数
2
解决办法
2025
查看次数

Java相当于python的String分区

Java的字符串拆分(regex)函数在正则表达式的所有实例中拆分.Python的分区函数仅在给定分隔符的第一个实例处拆分,并返回{left,separator,right}的元组.

如何实现Java中的分区功能?

例如

"foo bar hello world".partition(" ")
Run Code Online (Sandbox Code Playgroud)

应该成为

"foo", " ", "bar hello world"
Run Code Online (Sandbox Code Playgroud)
  • 是否有提供此实用程序的外部库?

  • 没有外部库我怎么能实现呢?

  • 它可以在没有外部库和没有Regex的情况下实现吗?

NB.我不是在寻找split("",2),因为它不会返回分隔符.

python java string split

4
推荐指数
2
解决办法
4066
查看次数

VBA是否具有ATan2功能?

我想atan2在VBA中计算,但我不确定该函数是否存在(甚至在哪里可以找到内置VBA函数的规范列表).我没有使用Excel,因此无法进行工作表调用.

我可以自己实现 atan2,但如果可能的话,我宁愿避免这样做.

vba

4
推荐指数
2
解决办法
2万
查看次数

六位Unicode转义值比较

我有一个六位数的 unicode 字符,例如U+100000我希望与char我的 C# 代码中的另一个进行比较。

我对MSDN 文档的阅读是,这个字符不能用 a 表示char,而必须用 a 表示string

U+10000 到 U+10FFFF 范围内的 Unicode 字符不允许出现在字符文字中,并且在字符串文字中使用 Unicode 代理项对表示

我觉得我遗漏了一些明显的东西,但是您如何才能使以下比较正常工作:

public bool IsCharLessThan(char myChar, string upperBound)
{
    return myChar < upperBound; // will not compile as a char is not comparable to a string
}

Assert.IsTrue(AnExample('\u0066', "\u100000"));
Assert.IsFalse(AnExample("\u100000", "\u100000")); // again won't compile as this is a string and not a char
Run Code Online (Sandbox Code Playgroud)

编辑

k,我想我需要两种方法,一种接受字符,另一种接受“大字符”,即字符串。所以:

public bool IsCharLessThan(char myChar, string upperBound) …
Run Code Online (Sandbox Code Playgroud)

c# unicode unicode-escapes

4
推荐指数
1
解决办法
677
查看次数

是否有Java等效的Python字典显示?

在Python中我使用字典显示:

myAnonDict = {'foo': 23, 'bar': 'helloworld'}
Run Code Online (Sandbox Code Playgroud)

Java中是否存在等价物?

[编辑'匿名字典'阅读'字典显示']

python java dictionary

3
推荐指数
2
解决办法
5245
查看次数

如何在杰克逊杰森图书馆做peek()?

我使用的是流API JsonParser的的杰克逊库做一些自定义的JSON在Java解析.

有没有办法实现类似于方法的功能peek(),返回下一个标记,但光标位置不向前移动?

此用例类似于以下内容:

JsonParser parser = new JsonFactory().createParser(inputStream);
while(parser.peek() != JsonToken.START_ARRAY){
   ...do something with the current token...
}
Run Code Online (Sandbox Code Playgroud)

我见过杰克逊的代码示例使用了nextToken()上述情况的方法,不幸的是,它也在流中向前移动光标.

是否peek()有可能与杰克逊外的开箱,或者用另外的方法实现的?

NB.对其他图书馆不感兴趣,所以没有" 图书馆x做所有这一切和厨房水槽 "类型的答案请.

java parsing json jackson

3
推荐指数
1
解决办法
1624
查看次数

C#使用类型的泛型方法

我正在使用.Net framework 2.0来尝试执行以下操作:

我有一个返回int列表的外部服务.反过来,我使用每个int来查找具有属性的相应Type,其中包含属性key; 该属性的值与搜索参数匹配.

使用Type tI想调用泛型方法,但我无法做到这一点.因为我只会在运行时知道Type,我怀疑我可能不得不使用反射来调用泛型方法GetResultsForType- 这是正确的方法吗?

[MyAttribute(key1 = 1)]
class A{
    //some properties
}

[MyAttribute(key1 = 2)]
class B{
    //some properties
}

//and so on (for hundreds of classes).  The key is unique for every class.

public class Foo{
    public void DoSomething(){
         IList<int> keys = QuerySomeExternalService();

         Assembly asm = LoadAssemblyFromSomewhere();
         Type[] types = asm.GetTypes();
         foreach(int key in keys){
             Type t = SearchTypesForAttributeWithMatchingKey(types, key);  //I omitted caching of all the keys and Types into a Dictionary …
Run Code Online (Sandbox Code Playgroud)

c# generics reflection

0
推荐指数
1
解决办法
738
查看次数

如何使用st#:: vector <> :: iterator作为C#中的参数调用非托管C++函数?

在非托管C++中,我有一个函数,我试图从C#调用.这个C++函数如下:

typedef std::vector<Point> Points;
typedef std::back_insert_iterator<Points> OutputIterator;

namespace MYNAMESPACE{
    DLLEXPORT OutputIterator convexHull(Points::iterator first, Points::iterator last,  OutputIterator result);
}
Run Code Online (Sandbox Code Playgroud)

从C++调用时,该函数使用如下:

  Points points, result;

  points.push_back(Point(0,0));
  points.push_back(Point(10,0));
  points.push_back(Point(10,10));
  points.push_back(Point(6,5));
  points.push_back(Point(4,1));

  OutputIterator resultIterator = std::back_inserter(result);

  MYNAMESPACE::convexHull( points.begin(), points.end(), resultIterator);
  std::cout << result.size() << " points on the convex hull" << std::endl;
Run Code Online (Sandbox Code Playgroud)

我已经开始编写C#代码,但我不知道我应该传递哪些类型:

[DllImport("unmanagedCode.dll", EntryPoint = "convexHull", CallingConvention = CallingConvention.StdCall)]
        public static extern ???<Point> convex_hull_2(???<Point> start, ???<Point> last, ???<Point> result);
Run Code Online (Sandbox Code Playgroud)

C#中的Point结构只是:

struct Point{
    double x;
    double y;
}
Run Code Online (Sandbox Code Playgroud)

这是传递数组或List of Point的情况吗?

我有C++的源代码,可以更改函数参数; 是否会有一种不同类型的参数可以更容易从C#调用?

c# c++ pinvoke

0
推荐指数
1
解决办法
2120
查看次数